当前位置: 首页 > 知识库问答 >
问题:

Jenkins注入环境变量

钮巴英
2023-03-14

在Jenkins的工作中,我正在执行驻留在预步骤构建中的几个操作,例如执行外壳脚本。使用Jenkins插件EnvInject,我想将环境变量注入到我的maven构建(单元测试)中,以便在我的Java单元测试中使用。在外壳脚本IM做类似的事情:

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代码(单元测试)中不可用。当我完整打印两个系统时。getProperties()和系统。getenv()我没有看到登记的“ip”。

我是否需要为maven执行任何特殊操作以将变量传递给Java代码?还有什么不对劲吗?

从这一点开始,我几乎被卡住了,我确实想在Java代码中插入一个key=value

共有2个答案

梁丘烨
2023-03-14

我在我的项目中有一个类似的需求,除了我的项目是Maven。为了在java代码中使用jenkins的变量值,我使用了-DargLine=“-DEnv=$Environment”inside”构建-

尉迟华翰
2023-03-14

我的解决方案:

创建一个“构建自由风格的软件项目”。

  1. 詹金斯

所有自定义环境变量都可以通过步骤#2中定义的访问。这是我发现的将环境变量从shell注入到java的唯一方法。

 类似资料:
  • 问题内容: 在詹金斯(Jenkins)的工作中,我正在执行预构建中的一些操作,例如执行Shell脚本。通过使用Jenkins插件“ EnvInject”,我想将环境变量注入到我的Maven构建(单元测试)中,以便可以在Java单元测试中使用这些变量。在shell脚本中,即时消息执行类似以下操作: 在构建Jenkins时,输出以下内容: 但是“ ip”变量在我的Java代码(单元测试)中不可用。当我

  • 问题内容: 我正在从已设置用户权限的用户那里运行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。前缀): 这些定义也将在构建期间或构