Jenkins注入环境变量
在詹金斯(Jenkins)的工作中,我正在执行预构建中的一些操作,例如执行Shell脚本。通过使用Jenkins插件“
EnvInject”,我想将环境变量注入到我的Maven构建(单元测试)中,以便可以在Java单元测试中使用这些变量。在shell脚本中,即时消息执行类似以下操作:
echo "ip=$IP" >> unit-test.properties
在构建Jenkins时,输出以下内容:
[EnvInject] - Injecting environment variables from a build step.[EnvInject] - Injecting as environment variables the properties file path 'unit-test.properties'
[EnvInject] - Variables injected successfully.
但是“ ip”变量在我的Java代码(单元测试)中不可用。当我同时打印两个文件时,System.getProperties() andSystem.getenv()
看不到已列出的“ ip”。
我是否需要执行任何特殊操作以使maven将该变量传递给我的Java代码?还有其他问题吗?
从现在开始,我几乎陷入了僵局,我确实想key=value
从前一步将a 注入我的Java代码中。
回答:
我的解决方案:
创建一个“构建自由样式的软件项目”。
- Jenkins>新项目>构建自由样式的软件项目
- 添加第一步:执行shell @ Build,并将
key=value
对回显到.properties文件 - 添加第二步:注入环境变量,使用步骤2中定义的.properties文件
- 添加第3步:调用顶级Maven目标
可使用key
步骤2中定义的来访问所有自定义环境变量。这是我发现将环境变量从Shell注入Java的唯一方法。
以上是 Jenkins注入环境变量 的全部内容, 来源链接: utcz.com/qa/423934.html