2011-02-10 87 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

相關問題