适用于多个Maven项目的Maven POM版本管理

Bmi*_*s13 1 pom.xml maven

在我们的项目中,我们大约有25个Maven项目,其中每个项目至少包含3个模块项目和1个父POM。因此,总数约为(25 * 4)100个POM文件。有什么简单的方法可以维护POM更改版本?因此,这项任务变得乏味而无聊。这一定是整个软件开发中的常见问题吗?

是否有人有脚本或工具可以更改此版本以处理以下3种情况?

1)  
    <dependency>
      <groupId>THEGROUPID</groupId>
      <artifactId>THEARTIFACT</artifactId>
      <version>THE-VERSION</version>
    </dependency>

2)
    <dependency>
      <groupId>THEGROUPID</groupId>
      <artifactId>THEARTIFACT</artifactId>
      <version>$(version.number)</version>
    </dependency>
3)
  <parent>
    <groupId>THEGROUPID</groupId>
    <artifactId>THEARTIFACT</artifactId>
    <version>THE-VERSION</version>
  </parent>
Run Code Online (Sandbox Code Playgroud)

我们有25个Maven项目,并且每个项目之间相互依赖(通过父pom,但没有循环依赖)。因此,当我们更改其中一个lib的版本时,需要在所有maven模块父POM中进行更改。....因此,我一直在寻找一种工具,可以在众多POM中实现这一目标,而不仅仅是一个muti。 -module项目(发行插件将仅发行和一个maven muti-module项目。)我希望这将对问题有更好的了解。

基本上,我正在寻找linux SED类型的命令,但要查找特定的groupid和artifactid。

谢谢,

Bmis13

mat*_*sev 5

将所有版本放入<dependencyManagement>您的父pom中:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>THEGROUPID</groupId>
      <artifactId>THEARTIFACT</artifactId>
      <version>THE-VERSION</version>
    </dependency>
  </dependencies>
</dependencyManagement>
Run Code Online (Sandbox Code Playgroud)

因此,您无需将<version>标签添加到子poms。

参考:dependencyManagement(向下滚动)