我正在使用BOM將其他項目中的依賴項導(dǎo)入到我的中,我需要一種方法來引用已在所述BOM中聲明的依賴項版本.到目前為止,我已嘗試將依賴項版本列為BOM中的屬性,但此方法失敗,因為屬性未導(dǎo)入BOM.
我已經(jīng)看到Dependency Plugin的dependency:properties目標(biāo)幾乎完全符合我的需要,但我沒有給我一個完整的工件路徑,而是需要將版本作為屬性.有什么東西可以給我一個解決的工件的版本作為屬性?
更新 – ‘為什么不使用父母pom?’
我經(jīng)常發(fā)現(xiàn)自己在應(yīng)用程序服務(wù)器環(huán)境中工作,其中提供的依賴項是用BOM工件指定的(因為它似乎已經(jīng)成為分配相互關(guān)聯(lián)的工件組的一種常見/標(biāo)準(zhǔn)方式,即widlfly).因此,我想將BOM視為事實的唯一來源.執(zhí)行類似于已經(jīng)在BOM中定義的依賴版本屬性的操作的想法似乎不正確.
如果我要在父pom中定義鏡像應(yīng)用服務(wù)器環(huán)境的屬性,我現(xiàn)在不得不擔(dān)心保持父pom屬性和BOM屬性同步 – 為什么甚至在那時都有BOM?
這些信息已經(jīng)在依賴樹上提供了,這只是暴露它的問題……
解決方法:
找不到任何現(xiàn)有的maven或插件功能,所以我將舊的dependencypath-maven-plugin分叉并將其更改為使用版本.現(xiàn)在我可以插入這樣的插件:
<build> . . <plugins> . . <plugin> <groupId>io.reformanda.semper</groupId> <artifactId>dependencyversion-maven-plugin</artifactId> <version>1.0.0</version> <executions> <execution> <id>set-all</id> <goals> <goal>set-version</goal> </goals> </execution> </executions> </plugin> </plugins></build>
并訪問如下屬性:
groupId:artifactId:type[:classifier].version
I.E.
io.undertow:undertow-core:jar.version=1.3.15.Final
查看README以獲取有關(guān)如何使用該插件的更多信息.它可用@ Maven Central:
<dependency> <groupId>io.reformanda.semper</groupId> <artifactId>dependencyversion-maven-plugin</artifactId> <version>1.0.0</version></dependency>
…插件一直向下……
來源:https://www.icode9.com/content-1-492251.html