【问题标题】:Maven: how to update version of one module in a multi-module project?Maven:如何在多模块项目中更新一个模块的版本?
【发布时间】:2015-01-13 08:25:17
【问题描述】:

我有三个项目:jar1, jar2, war

依赖:war --> jar2 --> jar1

所有项目都在1.0.0.0 发布。现在对于下一个版本,jar2 中的文件已更新,因此只需将其版本更改为 1.0.0.1。 (war的发布版本也需要改变,但这是下一步。这里重要的是jar1`版本没有更新。)

是否有一个好的 maven 插件或其他工具可以将 jar2 的发布版本更新为 1.0.0.1,并将 jar2 上的 war 中的依赖项更新为相同的版本?

我尝试了versions:set-DartifactId,但它为所有模块设置了版本。

【问题讨论】:

  • 你有 pom.xml 吗?
  • @JordiCastilla 是的,所有项目的标准 pom。
  • 也许这有帮助:*.com/questions/20075382/…
  • 在我工作的地方,我们遇到了同样的问题。您可以使用发布插件进行第一个任务(将 jar2 的发布版本更新为 1.0.0.1)。据我所知,第二个任务没有好的工具(更新对 jar2 的战争依赖)。我们还研究了版本插件的不同目标,但它对我们不起作用。
  • @Michal 你最后做了什么?

标签: java maven


【解决方案1】:

您的 3 个模块(jar1、jar2 和 war)中的每一个都有自己的 pom.xml 文件,您可以在其中找到以下标签

<project>
    ...
    <groupId>my.company.team</groupId>
    <artifactId>my.application</artifactId>
    <version>1.0.0.0</version>
    <packaging>jar</packaging>
    ...
</project>

在您的项目中进行更改后,您有 提高版本号并再次部署。 (见Maven lifecycle

*注意:如果您想将新项目状态部署到您的 maven 存储库,则需要将版本更改为新版本,除非您的版本号以 -SNAPSHOT 结尾。

在其他未使用最新版本的项目中,您可以将依赖项中的版本号更正为您正在使用的 maven-repository 上的最新版本(如果您想更改,请检查您的 .m2/settings.xml 文件您的默认 Maven 存储库)。

要自动化新项目版本的发布过程,您可以使用来自 maven 的 release-plugin

【讨论】:

  • 嗯,我知道所有这些。我的问题是针对一个插件/工具的,它可以让我只为多模块项目中的一个模块增加版本。 release-plugin 是怎么做到的?
  • 感谢降级。在发布插件的文档及其示例中对此进行了描述:maven.apache.org/maven-release/maven-release-plugin/examples/…
  • 在链接中,第 3 步“将 POM 中的版本从 x-SNAPSHOT 更改为新版本(系统将提示您选择要使用的版本)”。这会增加所有 POM 的版本,无论与该 pom 的项目关联的文件是否被修改。这是我们试图避免的。如果文件没有更改,为什么要更新 pom 版本?问题是如何只更新特定 pom 的版本。
最近更新 更多