2015-08-18 168 views
0

我讀了很多幾乎類似的問題,但我遇到了不同的問題。跨多個不同項目的Maven共享項目

我有3個項目:

  1. Project_A
  2. Project_B
  3. Project_Shared

解決方案1:本地安裝JAR

我想開發幻燈獨立於Project_B的ct_A。但都使用Project_Share,我也想開發 - 這就是爲什麼我不能手動從Project_Share創建一個jar並將其安裝在本地Maven存儲庫中。

解決方案2:兩個不同父POM

我也真的不想改變Project_A和Project_B結構 - 通過增加對他們兩種不同的行家父POM。據我瞭解 - 我可以爲兩個模塊添加父POM:Project_A和Project_Share,然後我可以使用父項目運行Project_A。我不能從中直接運行Project_A(這會抱怨Project_Shared罐子失蹤 - 我說的對

的理想解決方案:以這樣的方式

配置Maven的Project_A後,我跑Project_A,它將目光Project_Shared的目錄,編譯它,並獲得它的罐子,然後用這個罐子建立Project_A,並運行Project_A

問題:?

是否有可能獲得理想的解決方案還是有更好的解決方案?或者我誤解了一些東西?

感謝您的幫助!

+1

我不明白這句話:'這就是爲什麼我不能從Project_Share手動製作一個jar並將其安裝到本地Maven倉庫中。爲什麼不?這正是解決方案... – khmarbaise

+0

你是對的。在更改Project_Share之後,我可以手動執行此操作。我認爲這可以通過Project_A的某個目標手動完成 - 但它可能會複雜。 – jsosnowski

回答

1

我可以告訴你,Project_A和Project_B是兩個不同的項目(它們都不是另一個的父項),因此它們應該完全獨立嗎?

您有自己的Project_A和Project_B pom.xml。兩者都來自Project_Shared。所以Project_Shared有它自己的pom.xml,其他項目poms引用爲dependencies

最初您爲Project_Shared致電mvn install。之後,您可以構建其他項目。如果要更改Project_Shared,則可以執行相同的操作,並且應該可以對兩個項目進行更改。

+0

是的,你是對的。這個解決方案需要在每次修改Project_Shared之後記得調用'mvn install',但這不是太困難。所以如果沒有更好的答案出現,這將被接受。 – jsosnowski

+0

可能以下(**解析工作區構件**)也可以幫助在Eclipse中讓maven插件在* Project_A *或* Project_B *的構建過程中自動構建* Project_Shared *:http://stackoverflow.com /問題/ 13205734/m2eclipse的-插件 - 什麼 - 做排解工作空間,文物辦 –