当前位置: 首页 > 面试题库 >

Jenkins注入环境变量

轩辕实
2023-03-14
问题内容

在詹金斯(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代码中。


问题答案:

我的解决方案:

创建一个“构建自由样式的软件项目”。

  1. Jenkins>新项目>构建自由样式的软件项目
  2. 添加第一步:执行shell @ Build,并将key=value对回显到.properties文件
  3. 添加第二步:注入环境变量,使用步骤2中定义的.properties文件
  4. 添加第3步:调用顶级Maven目标

可使用key步骤2中定义的来访问所有自定义环境变量。这是我发现将环境变量从Shell注入Java的唯一方法。



 类似资料:
  • 在Jenkins的工作中,我正在执行驻留在预步骤构建中的几个操作,例如执行外壳脚本。使用Jenkins插件EnvInject,我想将环境变量注入到我的maven构建(单元测试)中,以便在我的Java单元测试中使用。在外壳脚本IM做类似的事情: 在构建Jenkins时,输出以下内容: 但是“ip”变量在我的Java代码(单元测试)中不可用。当我完整打印两个我没有看到登记的“ip”。 我是否需要为ma

  • 问题内容: 我正在从已设置用户权限的用户那里运行Jenkins ,当我进入Jenkins Web界面时,在“ 系统属性” 窗口()中看到了一个不同的。 我已经使用Jenkins网站上的本地rpm在Centos上安装了Jenkins。我正在使用安装随附的启动脚本 谁能告诉我为什么会这样? 问题答案: 迈克尔 两件事情: 当詹金斯连接到计算机时,它将连接到外壳,而不是外壳(至少这是我注意到的-我可能错

  • 问题内容: Jenkins(管理jenkins->系统信息)下的环境变量从何而来? 我检查了/etc/init.d/tomcat5,/ usr / bin / dtomcat5,/ usr / bin / tomcat5,/ etc / sysconfig / tomcat5和/ etc / profile,但在那里没有看到任何此类变量,特别是与Oracle相关的变量(Base,Home,Ld_l

  • 问题内容: 我正在将Jenkins与Testswarm和此插件一起使用(派生资源)。 我想为Testswarm获取一个“工作名称”,其中包含詹金斯的工作名称,内部版本号和svn修订版号。 将JOB_NAME放在配置字段中无济于事,该变量不会被其值替换。 因此,我修改了插件源代码以获取Jenkins环境变量,但我得到的只是“空”变量。 这是罪魁祸首代码。(在第205行的src / main / ja

  • 问题内容: 我正在尝试在Jenkins中使用DSL管道。我认为如果可以将项目名称用作脚本的一部分,那就太好了。 我得到错误: 我以为我遵循了这些指示,并且将其作为变量之一。 我决定尝试: 在我的DSL中,结果显示为: 这是我所期望的。 另一个博客提到: 使用环境变量 我们有两种方法来获取它们的价值。在启动过程中传递的属性,由于Groovy与Java的紧密联系,我们可以理解为。 以Java方式读取普

  • 问题内容: 是否有任何环境变量可用于获取Jenkins管道标题? 我知道我们可以使用它来获得自由职业的头衔,但是有什么可以用来获取管道名称的东西吗? 问题答案: 您可以使用相同的名称(例如或)从groovy访问相同的环境变量。 从文档中: 可以从Groovy代码中以env.VARNAME或仅以VARNAME的形式访问环境变量。您也可以写入这些属性(仅使用env。前缀): 这些定义也将在构建期间或构