【发布时间】:2020-07-01 14:35:33
【问题描述】:
我有两个不同的项目。 Project_1 是一个 Maven 多模块项目。 Project_2 依赖于 Project_2 的一些模块。我在 Project_1 的父 POM 中声明了一个版本属性,并在子 POM 中引用,如下所示。
Project_1 父 POM
<groupid>x</groupid>
<artifactid>y</artifactid>
<version>${app.version}</version>
<properties>
<app.version>1.0.0</app.version>
</properties>
Project_1 子 POM
<parent>
<groupid>x</groupid>
<artifactid>y</artifactid>
<version>${app.version}</version>
</parent>
<artifactid>y1</artifactid>
Project_2 POM
<dependency>
<groupid>x</groupid>
<artifactid>y</artifactid>
<groupid>1.0.0</groupid>
</dependency>
我已经在本地存储库中使用“mvn clean install”安装了 Project_1,但问题是 Project_1 及其安装在本地存储库中的模块 pom 及其依赖项的版本为 ${app.version}。因此,如果我将 Project_1 或其模块作为 Project_2 中的依赖项,实际版本为 1.0.0,则会抛出找不到版本 1.0.0 的错误
有没有办法解决这个问题?在安装 Project_1 期间,我喜欢在本地存储库中用实际覆盖密钥 {app.version}。
【问题讨论】:
-
我不会用属性设置版本。只需将其设置在
<version></version>标记中,并在构建项目时使用mojohaus.org/versions-maven-plugin/usage.html 来管理版本。您的 Project_2 POM 代码示例中似乎还有一个类型:<groupid>是重复的。
标签: maven-3 pom.xml parent-pom