用于Maven pom依赖项的Jenkins环境变量

时间:2018-05-08 11:01:19

标签: maven jenkins dependencies environment-variables pom.xml

我们在jenkins上有几个相互依赖层次结构运行的作业。

可以说,Job2对pom.xml版本的Job1有依赖关系。 因此,每当我们在Job1的sprint结束时进行更改时,我们需要在sprint结束时释放工件之前更改Job2内部依赖项的pom版本,所以如果我们有Job3,这可能不方便Job4,Job5取决于Job1的版本。我们需要在依赖它的所有作业的所有pom.xml上更改Job1的所有版本。

所以问题是,有没有办法解决这个问题,可能使用jenkins env变量?需要帮助如何根据上述问题执行它。

感谢。

3 个答案:

答案 0 :(得分:1)

您可以使用jenkins Parameterized Trigger Plugin将变量传递给下游项目。插件wiki得到了详细解释。

答案 1 :(得分:0)

由于您在Job1执行结束时将拥有所需的版本,因此将其导出为环境变量或将其存储在构建服务器上的某些文件中,如

pom_version=1.1

现在,当触发所有下游作业时,将作业参数设置为“pom_version”,并传递此文件以选择所需的键/值或将值设置为预定义的参数。

enter image description here

之后,确保所有下游作业都配置为参数化参数“pom_version”

答案 2 :(得分:0)

因此,您在内部开发的工件之间存在依赖关系。在开发期间,您希望依赖于这些工件的最新快照,但发布版本应取决于这些工件的最新版本。

这可以通过Jenkins和Maven来实现。像这样设置发布构建作业:

  1. 添加"前一步"类型"调用顶级Maven目标"。在此步骤中,您运行目标versions:update-properties scm:checkin以更新内部依赖项以指向最新版本。
  2. 在主构建步骤中执行发布:release:prepare release:perform -B。这将构建发行版本,将版本号增加到下一个快照版本,构建下一个快照版本并将其重新检入scm。
  3. 在" Post Step"再次运行Pre Step的目标(使用allowSnapshots=true)更新您的依赖项以引用最新的快照版本。
  4. 示例:

    enter image description here

    enter image description here

    enter image description here

    注意:要使其工作,所有作业都必须访问相同的Maven存储库。本地在Jenkins服务器或您的公司Nexus上。