我们在jenkins上有几个相互依赖层次结构运行的作业。
可以说,Job2对pom.xml版本的Job1有依赖关系。 因此,每当我们在Job1的sprint结束时进行更改时,我们需要在sprint结束时释放工件之前更改Job2内部依赖项的pom版本,所以如果我们有Job3,这可能不方便Job4,Job5取决于Job1的版本。我们需要在依赖它的所有作业的所有pom.xml上更改Job1的所有版本。
所以问题是,有没有办法解决这个问题,可能使用jenkins env变量?需要帮助如何根据上述问题执行它。
感谢。
答案 0 :(得分:1)
您可以使用jenkins Parameterized Trigger Plugin将变量传递给下游项目。插件wiki得到了详细解释。
答案 1 :(得分:0)
由于您在Job1执行结束时将拥有所需的版本,因此将其导出为环境变量或将其存储在构建服务器上的某些文件中,如
pom_version=1.1
现在,当触发所有下游作业时,将作业参数设置为“pom_version”,并传递此文件以选择所需的键/值或将值设置为预定义的参数。
之后,确保所有下游作业都配置为参数化参数“pom_version”
答案 2 :(得分:0)
因此,您在内部开发的工件之间存在依赖关系。在开发期间,您希望依赖于这些工件的最新快照,但发布版本应取决于这些工件的最新版本。
这可以通过Jenkins和Maven来实现。像这样设置发布构建作业:
versions:update-properties scm:checkin
以更新内部依赖项以指向最新版本。release:prepare release:perform -B
。这将构建发行版本,将版本号增加到下一个快照版本,构建下一个快照版本并将其重新检入scm。allowSnapshots=true
)更新您的依赖项以引用最新的快照版本。示例:
注意:要使其工作,所有作业都必须访问相同的Maven存储库。本地在Jenkins服务器或您的公司Nexus上。