我有一個錯綜複雜的Maven項目,其模塊和子項目最高可達四級繼承。此外,一些模塊依賴於不在同一「子樹」中的模塊,我想知道是否可以避免在每次有模塊依賴關係時表示版本。分層maven項目版本
比如我有
a
-b
-c
-d
-e
假設模塊e
取決於c
,什麼是指定在乾燥方式的版本最好的方法是什麼?
如果在模塊e
的pom.xml中,我沒有指定我想要哪個版本的c
模塊,我的構建將會失敗。有沒有一種智能的方法來處理這個版本問題?
我有一個錯綜複雜的Maven項目,其模塊和子項目最高可達四級繼承。此外,一些模塊依賴於不在同一「子樹」中的模塊,我想知道是否可以避免在每次有模塊依賴關係時表示版本。分層maven項目版本
比如我有
a
-b
-c
-d
-e
假設模塊e
取決於c
,什麼是指定在乾燥方式的版本最好的方法是什麼?
如果在模塊e
的pom.xml中,我沒有指定我想要哪個版本的c
模塊,我的構建將會失敗。有沒有一種智能的方法來處理這個版本問題?
groupId和artifactId表示maven中的單個項目,但必須指定版本(或從父pom繼承)才能確定該項目maven需要引用的版本。它看起來是多餘的,但是如果有很多不同的版本則尤其需要。
,最好的方法是定義與自己合適的版本號的所有工件在dependencyManagement塊類似項目的根目錄:
a (pom.xml)
-b
-c
-d
-e
下列要求:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>project</groupId>
<artifactId>b</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>project</groupId>
<artifactId>c</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>project</groupId>
<artifactId>d</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>project</groupId>
<artifactId>e</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
但隨着給定結構:
a (pom.xml)
-b
-c
-d
-e
必須包含一個模塊列表les(包裝pom),b(包裝pom)和d(包裝pom),這意味着a,b和d永遠不會被用作依賴關係,這意味着您可以從上述塊中省略它們。
請注意,這很重要,因爲任何對依賴項的更改(包括版本號)都意味着項目本身已發生更改。如果你不需要改變它的版本,你最終不能依靠所有具有相同版本號的工件(不包括SNAPSHOTS)。 –