2011-10-12 59 views
0

我正在處理maven應用程序。 我們有5個模塊,所以總共有6個pom.xml文件作爲我們應用程序的一部分。Maven:pom.xml文件中依賴關係標記的用法incase不同的模塊

<module>myware</module> 
<module>XMLModule</module> 
<module>Business</module> 
<module>Tests</module> 
<module>bayers</module> 

對於所有這些模塊,我提到了相對路徑標記來引用父pom.xml文件。

如果許多模塊需要相同的jar文件,那麼我們是否需要在每個pom.xml文件中提及這個?

<dependency> 
    <groupId>commons-logging</groupId> 
    <artifactId>commons-logging</artifactId> 
    <version>1.1.1</version> 
    <type>jar</type> 
    <scope>compile</scope> 
</dependency> 

回答

3

如果你依賴於幾種常見的庫將有可能創造另一個 模塊列出這些作爲依賴,並且依賴於該模塊上拉他們 在傳遞性。然而,這不是maven的最佳做法,建議您使用 來明確列出您的依賴關係,而不要依賴可傳輸的 依賴關係。例如見note on dependency scopes

但是,您可以簡化依賴部分的鑽頭在你的父POM使用 dependencyManagement元素:

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>commons-logging</groupId> 
      <artifactId>commons-logging</artifactId> 
      <version>1.1.1</version> 
      <!-- type and scope omitted since they use the default values --> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

這使得在一個地方申報的版本,則可以省略version元素您的模塊的dependencies部分。

<dependencies> 
    <dependency> 
     <groupId>commons-logging</groupId> 
     <artifactId>commons-logging</artifactId> 
    </dependency> 
</dependencies> 
+0

另請注意,依賴關係是暫時的。因此,如果測試依賴於業務,那麼它也將獲得Business的所有編譯/運行時依賴關係。 –