我想將超過3個Maven項目(基於HTML,JavaScript和CSS)合併爲一個。我的主項目使用其他項目的依賴項。那麼,如何在不改變這些依賴關係的情況下構建單個項目呢?將不同的Maven Web項目合併到一個項目中
回答
使用Maven模塊。這裏有大量的文檔:
http://maven.apache.org/guides/mini/guide-multiple-modules.html
假設你有一個多模塊項目:
mysite
:父POM模塊。mysite-core
:一個java模塊mysite-web
:一個web資源模塊(javascript,html,...)mysite-webapp
:戰爭模塊
mysite
具有packaging pom
幷包括其他3 modules
:
<groupId>mysite</groupId>
<artifactId>mysite</artifactId>
<packaging>pom</packaging>
<modules>
<module>../mysite-core</module>
<module>../mysite-web</module>
<module>../mysite-webapp</module>
</modules>
mysite-core
使用標準jar packaging
:
<parent>
<artifactId>mysite</artifactId>
<groupId>mysite</groupId>
<relativePath>../mysite/</relativePath>
</parent>
<groupId>mysite</groupId>
<artifactId>mysite-core</artifactId>
mysite-web
是相似的:
...
<artifactId>mysite-web</artifactId>
mysite-webapp
包括Java和Web資源模塊的依賴性:
...
<artifactId>mysite-webapp</artifactId>
<packaging>war</packaging>
<dependency>
<groupId>mysite</groupId>
<artifactId>mysite-core</artifactId>
</dependency>
<dependency>
<groupId>mysite</groupId>
<artifactId>mysite-web</artifactId>
</dependency>
隨着從maven-war-plugin的overlays屬性,您的資源添加到戰爭:
<overlays>
<overlay>
<groupId>mysite</groupId>
<artifactId>mysite-web</artifactId>
<type>jar</type>
</overlay>
</overlays>
注:最好有一個flat project layout,如:
- 根
- 父POM模塊
- 的java POM模塊
- java的1罐模塊
- java的2罐子模塊
- web資源罐子模塊
- 戰爭模塊
代替分層佈局:
- 根
- 父POM模塊
- 的java POM模塊
- java的1罐模塊
- java的2罐子模塊
- web資源廣口瓶模塊
- 戰爭模塊
- 父POM模塊
我注意到,像Eclipse工具不喜歡分層結構(緩慢甚至無休止的版本)。
您能否清楚這一點?起初,我已經低調了,然後我有道理。 也許試圖想出一個更具體的例子,例如mysite [:pom]' - >('mysite-core [:jar]','mysite-css [:war]','mysite-html [:war]','mysite-webapp [:war]')並概述特別是在'mysite [:pom]'和'mysite-webapp [:war]'之間的關係? – aldrinleal
@aldrinleal:更新了我的答案。 – asgoth
謝謝!但是... 不確定倒數第二個pom語義上是否正確。 mysite-core被重新定義爲戰爭文件,並取決於自身 – aldrinleal
- 1. SVN將不同的項目合併成一個主項目
- 2. Maven android-合併不同的android項目
- 3. 在Eclipse中將多個maven項目合併爲單個項目
- 4. 將兩個不同的SVN回購項目中的兩個項目合併到其中一個回購項目
- 5. 將一個項目合併到另一個項目的方法
- 6. 合併兩個Maven項目?
- 7. 將兩個CVS項目合併到一個SVN項目中
- 8. 如何將兩個maven webapps合併到一個項目中
- 9. 將不同的Xcode項目集成到一個項目中
- 10. 使用maven將1個項目構建爲不同的項目
- 11. 如何將3個第一代MVC項目合併到一個項目中?
- 12. 如何將一個android studio項目合併到另一個android studio項目中
- 13. Git將兩個單獨的項目/ git repos合併到一個主項目中?
- 14. eclipse中的Maven web項目?
- 15. 在解決方案中將多個項目合併到一個項目中
- 16. 將兩個或多個visual studio項目合併到一個項目中
- 17. 將兩個項目合併爲一個項目
- 18. 設置maven-web項目(從現有的netbeans-maven-web項目)
- 19. Maven項目到java項目
- 20. 將Maven項目添加爲NetBeans中的Java Web項目
- 21. 兩個不同的項目,在maven中有一個共享依賴項目
- 22. 將主項目上的項目配置合併到Develop中
- 23. 將本地版本的Xcode項目合併到「主」項目中
- 24. 訪問maven項目中的類到另一個java項目
- 25. 在maven中將文件從一個項目複製到另一個項目
- 26. 將JAR Maven項目包含到WAR Maven項目中
- 27. 在另一個Maven項目中包含Maven項目的Jar不起作用,但將該項目包括在另一個Maven項目中工作
- 28. 將RSS項目合併爲一個項目
- 29. 將多個項目合併在一起
- 30. Maven項目設計 - 共享一個共同的項目
所以你想重新安排你的目錄結構,或者添加Web項目的依賴到郵件項目?或者您想將Web項目作爲模塊添加到主項目中?請詳細說明 – Arpit