2017-05-25 90 views
0

我正在尝试将具有ServiceMix(FuseESB)的产品的版本更改为集成模块的过程自动化。更新多个ServiceMix POM中的Maven依赖项版本

改变各POM的版本是使用Maven插件的版本很容易:

mvn versions:set -DnewVersion=NEW_VERSION -DgenerateBackupPoms=false 

不过,我现在用的是此产品的其它模块的依赖更新的版本中挣扎。特别是,在许多服务单位POM文件有这样的依赖关系(其中OLD_VERSION是一样的,旧的版本号):

<dependencies> 
    <dependency> 
    <groupId>com.company.department.product.module1</groupId> 
    <artifactId>artifact1</artifactId> 
    <version>OLD_VERSION</version> 
    </dependency> 
    <dependency> 
    <groupId>com.company.department.product.module1</groupId> 
    <artifactId>artifact2</artifactId> 
    <version>OLD_VERSION</version> 
    </dependency> 
    <dependency> 
    <groupId>com.company.department.product.module2</groupId> 
    <artifactId>artifact3</artifactId> 
    <version>OLD_VERSION</version> 
    </dependency> 
</dependencies> 

而且我想设置在这些依赖的版本号为‘NEW_VERSION’。

你们有什么想法吗?

+0

“set”的目标是为了改变项目的版本,但不是为了依赖关系......你能展示一个你的项目的例子吗?除此之外,您是否在dependencyManagement部分定义了版本?你为此使用父母吗? – khmarbaise

+0

使用工具在文本文件(pom.xml文件)中搜索/替换也非常容易使用,您可以在这里搜索模式' X'和替换为' NEW'。 –

回答

0

刚刚发现这个非常简单的解决方案 - 用$ {project.version}替换依赖项的版本 - 适用于我,因为在我的项目中,依赖项具有与项目本身相同的版本(它们都是同一产品的工件)。

相关问题