我面臨的情況是我需要指定傳遞依賴的版本之一。我如何使用(參考)傳遞性依賴的版本?
有了下面的依賴關係樹,
A <- B <- C
我需要用C的pom.xml
指定的版本有沒有辦法做到這一點?所以我可以過濾這樣的文件?
A's version is @{...a.version}
我面臨的情況是我需要指定傳遞依賴的版本之一。我如何使用(參考)傳遞性依賴的版本?
有了下面的依賴關係樹,
A <- B <- C
我需要用C的pom.xml
指定的版本有沒有辦法做到這一點?所以我可以過濾這樣的文件?
A's version is @{...a.version}
使用<optional>true</optional>
:
Ç - >乙 - >甲
POM(B):
<dependencies>
<dependency>
<groupId></groupId>
<artifactId>A</artifactId>
<version></version>
<optional>true</optional>
</dependency>
...
</dependencies>
POM(C):
<dependencies>
<dependency>
<groupId></groupId>
<artifactId>B</artifactId>
<version></version>
</dependency>
<dependency>
<groupId></groupId>
<artifactId>A</artifactId>
<version></version>
</dependency>
...
</dependencies>
如果你想指定一個(可能的)transiti的版本將依賴關係放入POM的dependencyManagement部分。然後,如果依賴發生傳遞(如果沒有發現這種傳遞依賴,則默默忽略)。
不可能直接引用一些任意依賴的版本(暫時的或不是)。
然而,在你的父POM你可以定義一個屬性:
<properties>
...
<yourCdep.version>
...
</properties>
,並添加依賴於dependencyManagement部分:
<dependencyManagement>
<dependencies>
...
<dependency>
<groupId>yourCdep.group</groupId>
<artifactId>yourCdep</artifactId>
<version>${yourCdep.version}</version>
</dependency>
...
</dependencies>
</dependencyManagement>
從模塊B作爲依賴刪除版本它現在被「管理」了。
在父POM中的屬性值將是在兩個模塊甲訪問和B.
特別地,該屬性值現在可以被施加時資源濾波。
模塊A和B是否是您的代碼? –
@SteveC是的,實際上。 –
這些模塊是否共享一個父pom.xml? –