[英]Maven property overriding conflict between parent/bom
我目前的 maven 配置存在問題。 我認為它會以 MyBom 中的版本在祖祖父母定義的版本上具有更高優先級的方式工作。
這是設置:
在 spring-dependencies 中,我有這個版本 <atomikos.version> 4.0.6 </atomikos.version>。 在 myBom 中,我有這個版本 <atomikos.version> 5.0.106 </atomikos.version>。
spring-dependencies和MyBom都有
<dependency>
<groupId>com.atomikos</groupId>
<artifactId>transactions-jta</artifactId>
<version>${atomikos.version}</version>
</dependency>
我像往常一樣在“MyParent”中導入了 bom:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.test</groupId>
<artifactId>myBom</artifactId>
<version>${myBom.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
最后,在“MyProject”中,當我顯示有效的 pom 時,它使用來自 spring-dependencies 的版本4.0.6 。
我期望版本為5.0.106 ,因為 bom 在子層中重新定義了它。
請注意,它可以與 bom 和 parent 之間常見的任何依賴項一起使用。
所以,目前,我唯一可行的解決方案是手動設置“MyParent”中的版本,這使得“MyBom”的創建無用......
你能確認什么是正確的嗎? 我的假設(意味着我在某處配置錯誤)或當前行為,意味着“MyBom”毫無價值。
據我所知,無論 inheritance 級別是什么,dependencyManagement 中的“直接”條目始終優先於 BOM。
您可能應該只覆蓋<atomikos.version>
屬性。
這不可能覆蓋“MyBom”項目的父版本。 唯一的解決方案是刪除 spring-boot-starter-parent 作為父級並在“MyBom”導入的同一級別導入 spring-dependencies。
我找到了解決方案,但我要感謝@J Fabian Meyer 也指出了正確的解決方案。
dependencyManagement 只是聲明當真正用作項目依賴項時依賴項的版本應該是什么。 因此,您仍然應該聲明(使用)myBom 依賴項。 此外,scope“導入”無效。 查看文檔
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.