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