【问题标题】:Jenkins groovy pipeline: specifying Java OptionsJenkins groovy 管道:指定 Java 选项
【发布时间】:2020-07-23 13:33:43
【问题描述】:

我们有一个相对简单的作业配置,我正在尝试将其转换为 Jenkinsfile 中的 groovy 管道。

在我们的经典视图中,“Call Ant”部分如下所示:

现在,我可以在 Jenkinsfile 的相关部分中指定所有这些值,Java 选项除外。这就是我正在尝试的:

...    
script {
    antTarget = 'configure clean version.file compile jars create.webstart.module.eu.app-main.gui create.war.module.eu.app-main.srv release'
    labelArgument = "-Dlabel=${CURRENT_BUILD}@${GIT_HASH}"
    javaOptions = "-Donline=t"
                
    withAnt(installation: 'Ant Installation', jdk: 'java-for-sonarcube') {
        dir ("ingest/dev") {
            sh "ant ${labelArgument} ${javaOptions} ${antTarget}"
        }
    }
}
...

标签成功应用于构建,但是关于 Java 选项,显然我遗漏了一些东西:

/tmp/workspace/nb-ingest_feature_NBINGEST-124/ingest/dev@tmp/durable-fee91921/script.sh: line 2: -Donline=t: command not found

我在这里错过了什么?

【问题讨论】:

    标签: java jenkins groovy ant


    【解决方案1】:

    我也遇到了类似的问题。这就是解决方案。

    script{
    antTarget = 'cleanlib clean ensure-all-jars jar backport test slowtest cvrgreport-all ivy.publish-hudson'
    buildFile = "${WORKSPACE}/java/Utils6/auto_build.xml"
    javaOptions = "-Djava.io.tmpdir=${WORKSPACE}/tmp"
    prop = "-Divylib=${WORKSPACE}/buildutils/ivy/lib  -Dresolver=hudson-server"
    r=params.SVN_BUILD_REVISION
    b=params.SVN_BRANCH
    rev = "-DSVN_BUILD_REVISION=${r}"
    bch = "-DSVN_BRANCH=${b}"                   
    
    withAnt(installation: 'Ant1.9.4', jdk: 'JDK7') {
        sh "ant ${rev} ${bch} ${javaOptions} ${prop} ${antTarget} -file ${buildFile}"
    }
    

    【讨论】: