在我们的项目中,我们有大约25个maven项目,每个项目至少包含3个模块项目和一个父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>我们有25个maven项目,每个项目都有彼此之间的依赖关系(通过父pom,但不是循环依赖)。因此,当我们更改其中一个库的版本时,它需要在所有maven模块的父POM.....因此,我一直在寻找能够在各种POMs中实现这一点的工具,而不仅仅是一个多模块项目(发布插件将只发布一个maven多模块项目)。我希望这会对这个问题有更好的理解。
基本上,我正在寻找linux SED类型的命令,但为特定的groupid和artifactid。
谢谢,
Bmis13
发布于 2011-12-12 05:11:25
将<dependencyManagement>中的所有版本放入您的父pom中:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>THEGROUPID</groupId>
<artifactId>THEARTIFACT</artifactId>
<version>THE-VERSION</version>
</dependency>
</dependencies>
</dependencyManagement>因此,您不需要将<version>标记添加到您的子poms中。
参考:dependencyManagement (向下滚动)
发布于 2012-11-07 07:29:55
将versions-maven-plugin与其set mojo一起使用:
cd <your-super-parent-pom>
mvn versions:set -DoldVersion=1-SNAPSHOT -DnewVersion=2-SNAPSHOT然而,这个插件有一些限制。它不能处理某些(复杂)结构,其中pom继承很复杂,我也不确定它是否处理属性引用。
在maven-release-plugin中也有类似的功能。它可能有更高的机会更好地工作,因为它使用得更频繁- AFAIK代码不是共享的-但我对此没有直接经验。我只是观察到许多版本在相当困难的情况下进行了正确的版本重新编号……
发布于 2012-09-23 00:40:36
我写了我自己的工具来做这件事。它叫'pommel‘,你可以在这里买到:
http://code.google.com/p/pommel/
您可以定义一个映射文件并从命令行运行它。
java -jar pommel-1.0.0.jar -iC:\Development\java\projects -mmapping.xml映射文件采用以下形式:
<?xml version="1.0"?>
<mappings>
<mapping>
<dependency-source>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>*</version>
</dependency-source>
<dependency-target>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency-target>
</mapping>
</mappings>这将用指定的依赖目标替换对junit的所有引用。不能在依赖项源定义中使用通配符。它会将映射应用于它在指定目录下找到的所有pom文件。
https://stackoverflow.com/questions/8466033
复制相似问题