有沒有辦法在單個maven項目中編譯多個java源目錄?Maven編譯多個src目錄
回答
您可以構建輔助添加一個新的源目錄:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src/main/generated</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
這爲我工作
<build>
<sourceDirectory>.</sourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<includes>
<include>src/main/java/**/*.java</include>
<include>src/main2/java/**/*.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
不是一個好主意恕我直言,因爲幾個插件承擔`sourceDirectory` - 可能還有其他`sources` - 作爲源文件的根。在你的解決方案中,`maven-compiler-plugin`是唯一知道這些實際根的插件。 – 2011-05-04 14:17:04
@Laurent你說得對。這在幾年前是個好主意,但現在有更好的選擇。上面列出的構建幫手是我的首選選項。 – sal 2011-05-06 01:51:28
這不會將它添加到項目模型中,所以它在IDE中無法正常工作。 – 2011-11-10 20:29:35
用於從後集結幫手 - Maven的插件 - 和更新SRC /主/生成。而且mvn clean compile在我的../common/src/main/java或者../common上工作,所以保留後者。然後是的,證實了David Phillips提到的IntelliJ IDEA(版本10.5.2)級別的編譯失敗。 問題在於IDEA未向項目中添加其他源根。手動添加它解決了問題。這不是很好,因爲編輯項目中的任何內容都應該來自maven,而不是直接編輯IDEA的項目選項。然而,我可以直接支持build-helper-maven-plugin,直接自動添加源代碼。
然後需要另一種解決方法來使此工作。由於每次IDE重新導入maven設置後,pom將我新添加的源文件保存在模塊中,但它丟失了它的源文件夾選擇,並且沒用。因此,對於IDEA - 需要一次設置這些:
- 選擇 - 項目設置/ Maven的/導入/保持源和測試上重新導入 文件夾。
- 添加 - 項目結構/項目設置/模塊/ {模塊}/Sources /添加內容根目錄。
現在保持這些文件夾導入並不是世界上最好的做法,但是,試試看吧。
,使其在的IntelliJ工作,你還可以添加
<generatedSourcesDirectory>src/main/generated</generatedSourcesDirectory>
到Maven的編譯器插件
這可以通過兩個步驟來完成:
- 對於每個源目錄你應該創建自己的模塊。
- 在所有模塊應指定相同的編譯目錄:
${build.directory}
如果您有啓動碼頭(jetty:run
),那麼任何模塊中的任何類的重新編譯(與Maven,IDEA或者Eclipse)的工作將導致碼頭的重啓。您將獲得修改資源的相同行爲。
這也適用於maven通過定義資源標籤。無論你喜歡什麼,你都可以命名你的src文件夾名稱。
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.java</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.java</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/generated</directory>
<includes>
<include>**/*.java</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
我天真地做這種方式:
- 1. Gulp編譯CSS多個src
- 2. 如何從src目錄編譯到bin目錄?
- 3. GWT maven編譯器輸出目錄
- 4. 相剋編譯多個源目錄++
- 5. Maven多模塊項目編譯
- 6. Eclipse:指定多個res目錄,如指定多個src目錄
- 7. 是否可以在單個命令中編譯src目錄?
- 8. 應該Maven多個模塊項目在父級中有一個src目錄嗎?
- 9. Portably編譯整個目錄
- 10. Maven致命錯誤編譯:找不到目錄:maven-compiler-plugin
- 11. 無法編譯Maven項目
- 12. 生成文件VPATH多個SRC目錄
- 13. Maven編譯生成目標中同一類的多個版本?
- 14. Makefile:編譯src和測試目錄時出錯
- 15. 如何將所有編譯文件移出src目錄
- 16. 如何在MINIX 3中編譯目錄/ usr/src/kernel/system?
- 17. gulp - gulp-sass從許多目錄編譯
- 18. 哪個Maven源碼目錄應該包含application.xml? - src/main/config或src/main/resources
- 19. Maven build編譯錯誤:無法執行目標org.apache.maven.plugins:maven-compiler-plugin:3.1:編譯(默認編譯)項目Maven
- 20. 用CSC分別在單個目錄中編譯多個文件
- 21. 編譯一個包含多個目錄的文件列表
- 22. Maven的資源的Src VS目標目錄
- 23. 如何使用Maven將資源複製到src目標目錄?
- 24. Maven編譯
- 25. maven編譯groovy
- 26. 在PlayN中,如何排除Maven編譯的目錄?
- 27. 與Maven在不同目錄中編譯類文件的罐子
- 28. Maven的排除目錄進行編譯和測試下運行
- 29. 使用maven編譯後找不到src/main/resources的資源
- 30. maven-exec-plugin無法從src/main/java查找未編譯的類
這種方法的唯一問題是最終的工件也包含java源文件(.java文件)。有沒有辦法排除源文件,只包含.class文件? – 2012-09-05 09:23:15