父pom的版本RELEASE或LATEST

gjo*_*anv 5 maven

从maven 3.5.2开始,如果依赖项的版本设置为RELEASE或,则会显示以下警告LATEST

[警告] <groupId>:<artifactId>:jar的'dependencies.dependency.version'为最新或发布(均已弃用)

如果pom的版本设置为例如,则不会发出此警告:RELEASE

<parent>
    <groupId>com.mydomain</groupId>
    <artifactId>base</artifactId>
    <version>RELEASE</version>
</parent>
Run Code Online (Sandbox Code Playgroud)

这是故意的,以便我们可以安全地继续依赖RELEASE父pom的版本吗?

我们的用例是为约100个租户托管服务,这些服务需要一组通用的配置文件和一些依赖性管理等。此通用配置在我们的“基础” pom中定义,每个租户的pom都将其用作父级。我们需要所有租户使用父pom的相同版本和最新发布的版本。

JF *_*ier 7

我们也遇到过类似的情况:我们的父 poms 被数十名开发人员的数百个项目使用。在 Ant 中,我们有一种类似于 RELEASE 的方法,但现在我们有了明确的版本号。

每个开发人员都需要运行versions:update-parent以获取新版本,否则他/她会留在旧版本中。缺点是使用了多个版本的父 pom,优点是构建稳定性,因为“父 pom 人”不能通过隐式绘制的错误配置破坏构建。

在您的情况下,我建议您考虑是否真的需要每个人都使用相同的版本。如果你真的需要这个,你可能必须使用版本范围作为[1.0.0,).

  • 我必须添加一个上限,例如 [1,2)。如果没有,我会收到以下错误消息: [FATAL] Non-resolvable parent POM com.ourdomain:base:[1,) for com.ourdomain-theirapp:1.0.1: The requested parent version range '[1,)' 确实不指定上限,'parent.relativePath' 指向错误的本地 POM @ line x, column y (3认同)