2011-02-10 84 views

回答

4

这取决于该行是什么。

  1. 如果它是一个源文件夹,前 generate-sources使用在 生命周期阶段的 buildhelper-maven-pluginadd a source folder,这将 自动由 eclipse插件被拾起。
  2. 如果它是一个类路径容器,你 可以使用classpathContainers 参数
  3. 如果你想改变输出文件夹(从target/classestarget/test-classes别的东西),改变他们在Maven构建配置:

    <build> 
        <!-- replace "target" --> 
        <directory>somedir</directory> 
        <!-- replace "target/classes" --> 
        <outputDirectory>anotherdir</outputDirectory> 
        <!-- replace "target/test-classes" --> 
        <testOutputDirectory>yetanotherdir</testOutputDirectory> 
    </build> 
    

    您可以配置每个这三个独立的,所做的更改将通过Eclipse插件有所回升,但它被认为是很好的做法,把outputDirectorytestOutputDirectorydirectory(通常参照的文庆安${project.build.directory}),否则你打破的标准功能,例如mvn clean(它清除${project.build.directory}):

    <build> 
        <directory>bin</directory> 
        <outputDirectory>${project.build.directory}/main-classes 
        </outputDirectory> 
        <!-- this config will replace "target" with "bin", 
         compile src/main/java to "bin/main-classes" 
         and compile src/test/java to "bin/test-classes" 
         (because the default config for <testOutputDirectory> is 
         ${project.build.directory}/test-classes) 
        --> 
    </build> 
    

参考:


更新:在你的情况我想唯一可能的解决方案是通过编程编辑.classpath文件。我可能会做是这样的:

  1. 定义<profile>命名蚀(或其他)
  2. 定义gmaven plugin(使用this version
  3. 的执行编写一个简短的Groovy脚本(内嵌于pom或external),它检查classpath容器的.classpath文件,并在缺少的情况下添加它(将执行绑定到生命周期阶段,例如generate-resources
  4. 设置profile activation<file><exists>${project.basedir}/.classpath</exists></file>(因为你只希望它是积极的Eclipse项目)

这个解决方案的问题:eclipse:eclipse是一个目标,而不是一个阶段,所以它不可能自动执行这一点,所以你必须做这样的事情:

mvn eclipse:eclipse # two separate executions 
mvn generate-resources # here, profile will be active 

或许这也将工作:

mvn -Peclipse eclipse:eclipse generate-resources 
+0

这是第三个选项:)事实上,我的代码行是一个带有特定信息(比如`output`信息)的``,所以这些插件似乎没有足够的配置... – romaintaz 2011-02-10 16:28:27

相关问题