2014-01-15 171 views
21

Jenkins下的环境变量(管理jenkins->系统信息)从哪里来?我检查了/etc/init.d/tomcat5,/ usr/bin/dtomcat5,/ usr/bin/tomcat5,/ etc/sysconfig/tomcat5和/ etc/profile,但没有看到任何这样的变量,特别是在那里与Oracle相关的(基本,家庭,Ld_lib路径等)。 Tomcat的bashrc有一些与oracle相关的变量,但我仍然在jenkins系统信息页面中看到相同的变量。任何方向?Jenkins中的环境变量

回答

33

在詹金斯显示的环境变量(管理詹金斯 - >系统信息)从系统(即继承的环境变量)

继承如果你运行在一个shell env命令,你应该看到相同的环境变量正如詹金斯所示。

这些变量要么由shell/system设置,要么由您在~/.bashrc,~/.bash_profile中设置。

还有一些环境变量詹金斯设定的作业执行时,在这里看到:
https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project#Buildingasoftwareproject-JenkinsSetEnvironmentVariables
,但这些都不是在系统信息中显示。

+0

我已经为两个帐户的〜/ .bashrc,〜/ .bash_profile中的jenkins帐户以及TZ变量的根帐户设置了环境变量。两个accounbts中的env命令列出了TZ var设置。但詹金斯/ systemInfo页面不显示TZ,我的单元测试依赖于它失败。什么可能是错的? –

+0

@FarrukhNajmi尝试在[/etc/environment](https://help.ubuntu.com/community/EnvironmentVariables#A.2BAC8-etc.2BAC8-environment)中将系统环境变量设置为系统范围,在构建脚本的开头添加了自己的变量。另请参阅:https://stackoverflow.com/questions/5818403/jenkins-hudson-environment-variables – bitek

+1

如果您在Windows上使用Jenkins并将其作为系统服务运行,请确保将环境变量设置为系统范围一个,而不是每个用户,否则詹金斯将无法看到他们。 – pxb

13

最终什么工作对我来说是以下步骤:

  1. 配置环境喷油器插件:https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin
  2. 转到到/工作//配置屏幕
  3. 在构建环境段止“环境注入变量到构建过程“
  4. 在指定的”属性内容“中:TZ = America/New_York
+0

我想设置一个动态值的变量。你知道如何在第4步中运行脚本/批处理命令来设置值吗? – NealR

+2

EnvInject插件允许您通过引用脚本文件(请参阅脚本文件路径)或包含其内容(请参阅脚本内容)使用shell脚本来准备环境。我将不胜感激,并将此标记为正确答案。谢谢。 –