Jenkins 自动将 PATH 添加到 java 和 ant 的路径。如何禁用?
Jenkins auto-prepends PATH with path to java and ant. How to disable?
在自由格式项目中,我使用“注入环境变量”:
JAVA_HOME=/u01/jenkins/jdk1.8.0_181/jre
PATH=/u01/jenkins/jdk1.8.0_181/jre/bin:/u01/jenkins/apache-maven-3.0.5/bin:${PATH}
但是,在 shell 脚本中 $PATH
得到一个额外的前缀:
++ echo PATH=/u01/jenkins/jdk1.7.0_55/bin:\
/u01/jenkins/apache-ant-1.9.6/bin:/u01/jenkins/apache-maven-3.0.5/bin:\
/u01/jenkins/DependencyFinder-1.2.1-beta4/bin:\
/bin:/u01/jenkins/fly:/u01/jenkins/jdk1.7.0_55/bin:\
/u01/jenkins/jdk1.8.0_181/jre/bin:<the-original-path>
如何找到导致它的原因并最终在路径中包含我的 java 8?
Upd:jenkins_shell
脚本添加了除 /u01/jenkins/jdk1.7.0_55/bin
之外的所有条目。现在已修复。但我仍然不知道是谁在添加第一个条目 - java 的路径。
如果在 Manage Jenkins -> Global Tool Configuration
中配置了 JDK,则会创建一个全局环境变量:PATH+JDK=/u01/jenkins/jdk1.7.0_55/bin
并在执行 shell 脚本之前 Jenkins 预先添加 PATH
和 PATH+JDK
(实际上,任何以“PATH+”
开头的变量
解决方法是注入一个空的 PATH+JDK=
变量以完全禁用前置或注入 PATH+JDK=/path/to/proper/jdk
.
此外,由于 EnvVars extends TreeMap
您可以注入另一个变量:PATH+ZZZ=/path/to/something
比 PATH+JDK
更晚,因为 Jenkins 按字母顺序迭代此类变量。
最后,可以在作业的下拉列表中配置一个没有可执行文件的虚拟 JDK 和 select 这个虚拟 JDK。
在自由格式项目中,我使用“注入环境变量”:
JAVA_HOME=/u01/jenkins/jdk1.8.0_181/jre
PATH=/u01/jenkins/jdk1.8.0_181/jre/bin:/u01/jenkins/apache-maven-3.0.5/bin:${PATH}
但是,在 shell 脚本中 $PATH
得到一个额外的前缀:
++ echo PATH=/u01/jenkins/jdk1.7.0_55/bin:\
/u01/jenkins/apache-ant-1.9.6/bin:/u01/jenkins/apache-maven-3.0.5/bin:\
/u01/jenkins/DependencyFinder-1.2.1-beta4/bin:\
/bin:/u01/jenkins/fly:/u01/jenkins/jdk1.7.0_55/bin:\
/u01/jenkins/jdk1.8.0_181/jre/bin:<the-original-path>
如何找到导致它的原因并最终在路径中包含我的 java 8?
Upd:jenkins_shell
脚本添加了除 /u01/jenkins/jdk1.7.0_55/bin
之外的所有条目。现在已修复。但我仍然不知道是谁在添加第一个条目 - java 的路径。
如果在 Manage Jenkins -> Global Tool Configuration
中配置了 JDK,则会创建一个全局环境变量:PATH+JDK=/u01/jenkins/jdk1.7.0_55/bin
并在执行 shell 脚本之前 Jenkins 预先添加 PATH
和 PATH+JDK
(实际上,任何以“PATH+”
解决方法是注入一个空的 PATH+JDK=
变量以完全禁用前置或注入 PATH+JDK=/path/to/proper/jdk
.
此外,由于 EnvVars extends TreeMap
您可以注入另一个变量:PATH+ZZZ=/path/to/something
比 PATH+JDK
更晚,因为 Jenkins 按字母顺序迭代此类变量。
最后,可以在作业的下拉列表中配置一个没有可执行文件的虚拟 JDK 和 select 这个虚拟 JDK。