我有一个由各种Java库和服务组成的系统,所有这些都是用Maven构建的 - 每个都是一个独立的Maven项目,它引用了一个共同的父pom项目,该项目定义了第三方库的一致版本集。每个项目都使用属性来定义堆栈中的依赖项版本。
目前,为了构建一组发布工件,我们必须处理堆栈,执行每个项目的发布版本。这需要手动更改内部版本(在属性部分中)以匹配发布堆栈版本。
例如,假设我们有3个项目,A,B和& C,其中C取决于A& B.然后过程将是:
对于大量项目而言,这变得相当繁琐且容易出错。
我的问题是,是否有一种首选方法可以自动执行其中某些操作,例如在自己的项目中定义发布库版本?例如。我们集中定义包含系统Vx.y的库版本。然后,我们自动更新所有项目pom.xml文件以使用这些版本。
我们尝试过的一件事是将版本放入共享父pom中,然而这会创建一个循环依赖,这会导致更改父pom版本的永无止境的循环,因为lib版本已更改,然后需要更新所有项目以获取新的父pom,然后需要新的父pom等等。