我正在尝试让Jenkins声明性管道安装基于OS的JDK。为此,我在第一步构建中运行了一个脚本。但是,它似乎没有安装工具或没有将其安装到路径中。
我尝试了不同的方法来实现这一目标,但是没有运气。我认为底层代码会起作用:
pipeline{
environment {
// We assume Windows but switvh to Unix later if necessary
JDK_OS = ' (Windows/x64)'
}
stages {
stage ('Tools') {
steps {
script {
if (isUnix()) {
JDK_OS = ' (Linux/x64)'
}
}
}
tools {
jdk 'JDK11.0.3' + env.JDK_OS
}
}
但是它抛出一个错误,即未设置JAVA_HOME,并且在我回显PATH时:“ / usr / local / bin:/ usr / bin”那里没有JAVA_HOME。
如果我在管道模块中设置了工具,它可以按预期工作,但是我不能在其中使用“脚本”模块在基于OS的JDK之间进行切换。
我希望工具块的工作方式与在管道块中声明的方式相同。如果不是,是否有区别说明?
如果您还有其他建议可以做到这一点