繁体   English   中英

使用Jenkins,Maven和SVN创建标记的构建

[英]Creating a labeled build with Jenkins, Maven & SVN

我在詹金斯创建了一个参数化的工作,该工作是:

  • 根据标签“ V_x_y_z”获取源(Jenkins-SVN集成)
  • 执行Maven传递标签
  • POM使用build-helper-maven-plugin计算版本xyz

生成的工件是正确的,但版本错误。

除了将命令行中的版本传递给versions-maven-plugin之外,我看不到任何方法来更改生成的POM版本。 但是Jenkins无法解析标签并将其转换为版本。

因此,似乎只有“不好”的选择:

  1. 需求用户同时输入构建和标签- 容易出错
  2. 在Maven中而不是jenkins中执行结帐-这打破了关注点分离 ,因为POM本身是版本化的项目。
  3. 用脚本包装Maven(例如python)-但是后来我失去了Jenkins-Maven集成的好处

我本以为这是一个普通的用例,并且很容易得到支持-我是否缺少一些关键要素?

我认为实现此目标的最佳方法是运行2个预构建步骤:

  1. 调用一个shell脚本,该脚本创建具有受控版本的java属性文件

    回声“ MYVERSION = $ LABEL” | sed -e's /_/./ g'> new_property_file.properties

  2. 调用EnvInject插件步骤,该步骤读取该属性文件并注入新创建的env var

之后,您可以使用新的env var调用maven插件作为maven命令的输入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM