0
我正在處理包含許多Maven項目的大型項目。我們正在使用Maven 3.3.9。Maven項目 - 如何讀取作爲依賴項添加的項目的pom文件中定義的屬性
我想使用在另一個項目中的一個maven項目中定義的屬性,但我無法訪問該屬性。
現在的情況是:有一個稱爲「產品包裝」的maven項目,它有一個包含一些屬性的pom文件。這個maven項目只包含一個pom文件。它用於生成包含一組相互兼容的組件的包。
還有另一個名爲「projectX」的maven項目,它依賴於「產品包裝」。在「projectX」中,我們想要使用在「產品包裝」中定義的屬性。
我要添加XX-WS-其餘部分在projectX創建的依賴,我想設置的版本XX-WS-rest.version,這是在「產品包裝」
定義的一個屬性「產品包裝」 的POM樣子:
<project ...>
...
<properties>
<xx-ws-rest.version>1.6.0</xx-ws-rest.version>
</properties>
...
</project>
「projectX創建」 的POM樣子:
<project ...>
...
<properties>
<product-packaging.version>1.6.0</product-packaging.version>
</properties>
...
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.company.product</groupId>
<artifactId>product-packaging</artifactId>
<version>${product-packaging.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.company.product.xx</groupId>
<artifactId>xx-ws-rest</artifactId>
<version>${xx-ws-rest.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.company.product.xx</groupId>
<artifactId>xx-ws-rest</artifactId>
<type>war</type>
</dependency>
....
</dependencies>
</project>
如果我正確地看到你似乎誤解了導入範圍的概念。這將導入給定pom的dependencyManagement部分,該部分定義了您的依賴關係的不同版本。之後,您不需要再次在依賴項管理中定義版本。你可以簡單地通過定義依賴關係來使用它們。所以最後如果你在導入的pom中定義了依賴關係com.company.product.xx:xx-ws-rest,你不應該再次用屬性定義依賴關係。這將使您的導入範圍POM(BOM)無用... – khmarbaise