跨多个Maven项目管理一致版本

时间:2017-03-30 07:12:38

标签: java maven

我有一个由各种Java库和服务组成的系统,所有这些都是用Maven构建的 - 每个都是一个独立的Maven项目,它引用了一个共同的父pom项目,该项目定义了第三方库的一致版本集。每个项目都使用属性来定义堆栈中的依赖项版本。

目前,为了构建一组发布工件,我们必须处理堆栈,执行每个项目的发布版本。这需要手动更改内部版本(在属性部分中)以匹配发布堆栈版本。

例如,假设我们有3个项目,A,B和& C,其中C取决于A& B.然后过程将是:

  1. 发布版本A.
  2. 发布版本B.
  3. 更新C pom.xml以引用A& A的新版本乙
  4. 提交pom.xml
  5. 发布版本C.
  6. 对于大量项目而言,这变得相当繁琐且容易出错。

    我的问题是,是否有一种首选方法可以自动执行其中某些操作,例如在自己的项目中定义发布库版本?例如。我们集中定义包含系统Vx.y的库版本。然后,我们自动更新所有项目pom.xml文件以使用这些版本。

    我们尝试过的一件事是将版本放入共享父pom中,然而这会创建一个循环依赖,这会导致更改父pom版本的永无止境的循环,因为lib版本已更改,然后需要更新所有项目以获取新的父pom,然后需要新的父pom等等。

1 个答案:

答案 0 :(得分:0)

共识答案似乎是-使用Maven multi-module项目。我已经在两个系统上进行了尝试,发现它实际上运行良好。