2014-01-16 276 views
1

我有兩個Maven項目:Project1打包爲JAR,而Project2打包爲WAR。將JAR Maven項目包含到WAR Maven項目中

<!-- Project1's POM --> 
<groupId>foobar</groupId> 
<artifactId>project1</artifactId> 
<version>1.0</version> 
<packaging>jar</packaging> 

<!-- Project2's POM --> 
<groupId>foobar</groupId> 
<artifactId>project2</artifactId> 
<version>1.0</version> 
<packaging>war</packaging> 

我想包括PROJECT1到Project2的,所以Project2中的POM,我說:

<dependency> 
    <groupId>foobar</groupId> 
    <artifactId>project1</artifactId> 
    <version>1.0</version> 
</dependency> 

但Project2的是不能夠解決這種依賴性。

在Project2的屬性Java Build Path> Libraries中,我可以在我的「〜/ .m2」文件夾中看到Project2尋找「project1-1.0.jar」。這是正常的嗎?

有沒有人遇到過這個問題,最後找到解決辦法?即使在查看SO中的相關問題的答案時,我也無法使其工作。


  • Eclipse的開普勒
  • 的Maven 3.0.4
  • Maven的集成爲Eclipse WTP(麥浚龍)1.0.1
+1

除非你在project1上運行maven install。它不會被打包成一個jar文件到您的.m2版本庫中,因此它不會在project2的pom文件中解析。 – Hrishikesh

回答

3

除非你運行Maven安裝到您的project1。它不會作爲jar文件打包到您的.m2存儲庫中,因此它不會在project2的pom文件中解決。

這與使用第三方jar文件類似。但沒有在.m2存儲庫中。即使在這種情況下,你也會遇到同樣的問題。

對於您的項目2,項目1被視爲獨立的第三方jar文件。 它需要在您的.m2存儲庫中,以便解決它。

1

爲了確保Eclipse WTP瞭解您的項目相互依賴,您需要爲兩者定義一個多模塊父項目。 否則,每次更新它時都需要「mvn install」project1,並且您會發現依賴關係會經歷〜/ .m2。

Web上有很多關於多模塊項目的資源 - 您需要做的最大選擇是您是否想要一個平面佈局(所有項目目錄,包括父模塊項目的所有項目目錄,都位於同一個基礎目錄中)或分層佈局(父模塊項目目錄包含子模塊項目目錄)。

+0

有趣,謝謝! – sp00m

相關問題