我有一个jenkins构建过程,我使用python脚本来计算新版本:
import string import os print 'Current version is ' + os.environ['POM_VERSION'] versionArr = string.split(os.environ['POM_VERSION'], '.') versionArr[2] = str(int(versionArr[2]) + 1) if int(versionArr[2]) > 100: versionArr[2] = '0' versionArr[1] = str(int(versionArr[1]) + 1) if int(versionArr[1]) > 100: versionArr[0] = str(int(versionArr[0]) + 1) versionArr[1] = '0' print versionArr print 'New version will be: ' + versionArr[0] + '.' + versionArr[1] + '.' + versionArr[2] os.environ['NEW_POM_VERSION'] = versionArr[0] + '.' + versionArr[1] + '.' + versionArr[2]
然后我想跑
versions:set -DnewVersion=${NEW_POM_VERSION} -DgenerateBackupPoms=false
另一步。但是${NEW_POM_VERSION}
保持不变,并且不会转换为我设置的值。
我试图以错误的方式调用变量。我也试过使用$NEW_POM_VERSION
也没有用的
所以我应该如何正确地将变量导出到我的环境中。
感谢。
答案 0 :(得分:3)
Jenkins为每个构建步骤(以及构建后步骤)生成一个新环境。将值设置为1将不会保留到其余值。
您需要EnvInject plugin。
param=value
。