在管道作业中使用多个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,artifactoryCDownload,artifactoryEditProps.中找不到这样的DSL方法"工具">

请帮助我如何使用if-else条件或任何其他条件来根据PR id检测java版本。

tools块只允许在pipeline块或stage块内,而不允许在script块内。

我建议创建两个不同的阶段,并使用when来选择要执行的阶段。

stage("abc-java11") {
when {
expression {
return PR_ID == '100'
}
}

tools {
jdk 'java11.0.5'
}
steps {
// Your steps
}
}
stage("abc-java8") {
when {
expression {
return PR_ID != '100'
}
}

tools {
jdk 'java8'
}
steps {
// Your steps
}
}

相关内容

  • 没有找到相关文章

最新更新