Maven pom依赖项的Jenkins环境变量
我们在jenkins上有几个作业,它们在彼此的层次依赖关系上运行 比方说,对于pom.xml版本,Job2依赖于Job1。 因此,每当我们在sprint结束时对Job1进行更改时,我们都需要在sprint结束时发布工件之前更改Job2内部依赖项上的pom版本,因此如果我们有依赖于Job1版本的Job3、Job4、Job5,这可能并不方便。我们需要更改所有依赖于它的作业的pom.xml上的所有Job1版本 那么问题是,有没有办法解决这个问题,可能是使用jenkins env变量?基于上述问题,需要一个如何执行的帮手Maven pom依赖项的Jenkins环境变量,maven,jenkins,dependencies,environment-variables,pom.xml,Maven,Jenkins,Dependencies,Environment Variables,Pom.xml,我们在jenkins上有几个作业,它们在彼此的层次依赖关系上运行 比方说,对于pom.xml版本,Job2依赖于Job1。 因此,每当我们在sprint结束时对Job1进行更改时,我们都需要在sprint结束时发布工件之前更改Job2内部依赖项上的pom版本,因此如果我们有依赖于Job1版本的Job3、Job4、Job5,这可能并不方便。我们需要更改所有依赖于它的作业的pom.xml上的所有Job1版本 那么问题是,有没有办法解决这个问题,可能是使用jenkins env变量?基于上述问题,需要
谢谢。您可以使用jenkins将变量传递给下游项目。Plugin wiki得到了详细的解释。因为在执行Job1结束时您将获得所需的版本,所以将其导出为环境变量或将其存储在构建服务器上的某些文件中,如
pom_version=1.1
现在,在触发所有下游作业时,将作业的参数设置为“pom_version”,并传递此文件以拾取所需的键/值,或在预定义参数中设置值
之后,确保所有下游作业都配置为使用参数“pom_version”进行参数化,以便在内部开发的工件之间具有依赖关系。在开发过程中,您希望依赖于这些工件的最新快照,但发布版本应依赖于这些相同工件的最新发布版本 这可以通过詹金斯和马文实现。设置发布构建作业,如下所示:
versions:updateproperties scm:checkin
,以更新内部依赖项以指向最新版本release:prepare release:perform-B
。这将生成发布版本,将版本号增加到下一个快照版本,生成下一个快照版本并将其检回scmallowSnapshots=true
)以更新依赖项以引用最新的快照版本注意:要使其工作,所有作业都必须访问同一个Maven存储库。本地在Jenkins服务器或您的公司Nexus上。您是否使用快照?您的作业是否正在发布maven工件,并且您需要在下游发布版本中引用最新版本?@khmarbaise在开发过程中,我们在依赖项的版本上使用-SNAPSHOT,但是,当我们需要在sprint结束时释放工件时,我们需要在版本上排除单词snapshot,这表明我们将使用依赖项的发布版本,因为我们发布工件上的命名约定只是版本号no-release word。@Ralf yes,特别是最新版本的依赖项。可能的重复项似乎仅用于触发依赖于Job1的构建,但这是否有pom版本依赖项的环境变量。我不理解这些,其他作业的pom版本将如何获得Job1Maven的pom版本,因为新版本是本地安装的,并且可以选择部署到您的公司存储库中,例如Nexus。我要补充一点,所有作业都必须访问同一个Maven存储库才能工作。