2013-06-11 93 views
0

我有我認爲是相當常見的設置。我有一個包含兩個模塊的項目,每個模塊都有自己的pom.xml。在這之上,我有一個項目的pom.xml,這取決於它的子模塊。這兩個子模塊具有共享的依賴關係,即log4j。我應該如何處理這種依賴性?我應該只是簡單地讓每個子模塊具有log4j作爲依賴項,或者是否應該讓更高級別的項目模塊參與進來,並聲稱它是項目依賴項?如果我有兩個子模塊列出了依賴關係,Maven是否會很聰明並且只會拉下log4j一次,或者每個子模塊是否會拉下它自己的log4j專用副本?如果項目模塊具有依賴關係,log4j軟件包是否可以在適當的時候用於子模塊?你會怎麼做,或者你在這種情況下做了什麼?如何處理共享代碼依賴關係的兩個Maven子模塊

回答

0

您可以在更高級別的項目中設置依賴項。這將覆蓋項目的兩個模塊的依賴關係。

來源:這是我的團隊在我們的一個項目中做的。

2

執行此操作的最佳方法是使用dependencyManagement標記。

依賴管理部分是集中依賴信息的機制。當你有一組繼承公共父項目的項目時,可以將所有關於依賴項的信息放入公共POM中,並且可以更簡單地引用子POM中的項目。

爲了總結一下效果,你把標籤放在父pom中並讓孩子參考它。儘管如此,他們並沒有提及版本號。好處是你可以在任何時候更新父pom中的log4j版本,並且你所有的孩子poms都可以在不修改poms的情況下獲得新版本。

+0

謝謝。我是Maven的新手。我知道有辦法做到這一點,我只是不知道它是什麼。我注意到現在也有一種新的方式,涉及到導入依賴關係而不是繼承。我也會看到這一點。 – Bill