2

我想在计划的作业中传递 Jenkins 中的动态参数(此构建每天凌晨 3:00 运行)

如果我在我的 linux 命令行中执行它,这将有效:

mvn package -DintegrationTag=$(date +%d-%m-%y)

或者

mvn package -DintegrationTag="$(date +%d-%m-%y)"

或者

mvn package -DintegrationTag="$(date +"%d-%m-%y")"

使用这 3 个选项,这就是执行的操作,例如(这是我想在 Jenkins 中执行的操作):

mvn package -DintegrationTag=16-09-2013

但是这些句子中的任何一个都不适用于我的 Jenkins 目标和选项(因为动态参数)。

有什么办法吗?

4

3 回答 3

5

解决方案

包含脚本的文件的内容:

echo "NOW=`date +%d-%m-%y`"> env.properties

属性文件的路径:

env.properties

在项目、目标和选项中:

clean test package -DintegrationTag=$NOW

将环境变量注入构建过程 = true

于 2013-09-17T11:15:06.263 回答
2

在 Build "execute shell" 部分添加这个

NOW=`date +%d-%m-%y`
mvn package -DintegrationTag=$NOW
于 2013-09-16T14:47:51.407 回答
0

另一种选择是在 jenkins 中执行顶级 maven 目标。将所需变量值注入构建环境的前两个步骤与下面@Iker 给出的答案相同。
在第三步中,给出目标
clean test package

,然后在“高级”选项卡的“属性”部分中,给出
integrationTag=$<your variable name>

注意,当在 jenkins 中创建自由样式项目时,此解决方案很有用。对于 maven 2/3 项目,@Iker 的解决方案很好:)

于 2013-09-17T12:03:22.733 回答