【发布时间】:2019-05-10 14:18:02
【问题描述】:
我被要求这样做,所以请不要建议我不需要这样做。 :-p
我们目前使用 Maven 构建了一个多模块项目。我们这样做没有问题。我们正在使用 Maven 发布插件,我们在 Jenkins 中获得了用于开发和发布构建的 SNAPSHOT 构建。发布插件自动增加版本字符串的第 3 位。生活是美好的。
但是,我被要求在我们的版本字符串中添加第 4 个位置,其中填充了 Jenkins 构建号。
我看到建议的规范方法适用于单个模块:您定义一个类似于 build.number 的属性,使其具有默认值“0-SNAPSHOT”,并将您的 POM 定义为具有元素值像“1.9.${build.number}”。并且,您将 Jenkins 作业设置为将 build.number 定义为 Jenkins 构建号,以便调用 Maven。
如果我们只有一个模块,那就太好了,但我们没有。我们有多个模块,在 Maven 中我也不能 1.不在子模块POMs中指定版本,也不 2.在子模块POMs的版本中使用属性。
我认为 Maven POM 尝试在单个模块中生成多个工件(例如,使用配置文件)是一个坏主意,因此我不想尝试将此项目简化为单个模块。
我可能会尝试将其拆分为单独的项目,但这似乎很激烈,此外,这个项目确实产生了非常紧密相关的工件,所以我想确保为任何源代码更改构建所有工件项目。
有什么解决办法吗?
【问题讨论】:
标签: maven continuous-integration versioning multi-module