在詹金斯(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”。
System.getProperties() andSystem.getenv()
我是否需要执行任何特殊操作以使maven将该变量传递给我的Java代码?还有其他问题吗?
从现在开始,我几乎陷入了僵局,我确实想key=value从前一步将a 注入我的Java代码中。
key=value
我的解决方案:
创建一个“构建自由样式的软件项目”。
可使用key步骤2中定义的来访问所有自定义环境变量。这是我发现将环境变量从Shell注入Java的唯一方法。
key