gpt4 book ai didi

java - 如何从企业 POM 读取属性?

转载 作者:行者123 更新时间:2023-12-01 09:54:57 25 4
gpt4 key购买 nike

目前我有一个多模块 Maven 项目,其中版本和插件在父级中定义并在模块中使用。

parent.pom 中的示例依赖关系:

<properties>
<junit.version>4.12</junit.version>
</properties>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>

并在模块中使用:

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>

这工作正常,项目构建没有任何问题。现在我想将一些版本和依赖项提取到一个独立 enterprise.pom 中以全局定义它们并在我的不同项目中使用它们。所以我创建了一个企业项目(POM 类型):

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.myurl</groupId>
<artifactId>META-POM</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>

<properties>
<junit.version>4.12</junit.version>
</properties>

<dependencyManagement>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencyManagement>
</project>

然后我运行 mvn clean install 将其放入我的本地存储库,效果很好 - 我可以在那里看到它

接下来,我更改了我的多模块项目以使用 META-POM 作为依赖项(以了解 META-POM 中定义的版本)并删除了 junit-property 以及依赖项

<dependency>
<groupId>com.myurl</groupId>
<artifactId>META-POM</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>

当我现在尝试打包我的多模块项目时,它失败了,因为依赖项没有 META-POM 中定义的属性。即使我将模块中的依赖项更改为

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>

它仍然给我同样的错误因为 junit:jar 必须是有效版本,但是是“${junit.version}”。

如何从企业 POM 导出版本属性?我想在一个地方定义它们,这样我就可以确保在所有地方都使用相同的版本。

附注我想要拥有一个独立的企业 POm,而不需要在企业 POM 和所有多模块项目之间定义 parent/module

最佳答案

您需要添加<scope>import</scope>在你对 META-POM 的依赖中。之后,您应该能够使用对 junit 的依赖而无需版本标记。

我建议使用小写的artifactId。只有当您有多个使用相同版本的依赖项时,META-POM 中的属性才有意义。

关于java - 如何从企业 POM 读取属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37320064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com