jenkins在管道作业中使用多个java版本
我们已经将ant jar文件升级到51,需要检测java版本11,但我们的旧应用程序仍然使用旧jar文件50,因此我们需要根据pull请求id检测java版本。这里我们将PR id作为参数
stage("abc"){
steps{
script{
if (PR_ID == '100')
tools{
jdk 'java11.0.5'
}
else
tools{
jdk 'java8'
fi
}
我正在尝试这种方法,但得到了类似java的错误。lang.NoSuchMethodError:在步骤[ArtifactoryGradleBuild、MavenDescriptorStep、addInteractivePromotion、archive、artifactoryDistributeBuild、artifactoryDownload、artifactoryEditProps]中未找到此类DSL方法“tools”
请帮助我如何使用if-else条件或任何其他条件根据PR id检测java版本
# 1 楼答案
一个
tools
块只允许在pipeline
块或stage
块内部,而不允许在script
块内部我建议创建两个不同的阶段,并使用
when
选择要执行的阶段