如何在Jenkins Groovy管道中调用Ant

时间:2016-12-29 18:03:49

标签: jenkins groovy ant jenkins-pipeline hybris

我创建了一个Jenkins管道作业。在这项工作中,我想使用Ant进行构建。我已将管理**Jenkins > Global Tool Configuration**中的Ant变量配置为Ant1.9.1= D:\path_to_hybris\hybris\bin\platform\apache-ant-1.9.1

在freestyle jenkins Job中,我知道build.xml位置可以在下面的屏幕截图中指定:enter image description here

但是我无法理解如何在此之后指定ant groovy脚本,特别是在哪里可以提到build.xml文件的路径:

def antHome = tool 'Ant1.9.1'
????
????

3 个答案:

答案 0 :(得分:6)

你可以试试这个:

def antVersion = 'Ant1.9.1'
withEnv( ["ANT_HOME=${tool antVersion}"] ) {
    sh '$ANT_HOME/bin/ant target1 target2'
}

在Windows下,这看起来像这样(虽然我没有测试过):

def antVersion = 'Ant1.9.1'
withEnv( ["ANT_HOME=${tool antVersion}"] ) {
    bat '%ANT_HOME%/bin/ant.bat target1 target2'
}

这假设您在Jenkins中使用名称' Ant1.9.1'配置了Ant。

答案 1 :(得分:2)

你可以在Jenkins的管道groovy脚本中使用ant包装器。

withAnt(installation: 'LocalAnt') {
// some block
   sh "ant build"
//for windows 
   bat "ant build"
}

请记住在Jenkins“全局工具配置”中使用相同名称“LocalAnt”配置ant工具。

答案 2 :(得分:0)

我需要在需要同时在Linux和Windows代理上执行的同一Jenkinsfile中多次执行此操作,因此我为此创建了一个方法。

你可以这样叫蚂蚁

callAnt("-v -p")

如果将此方法定义添加到jenkinsfile

def callAnt(String Parameters) {
    if (isUnix()) {
        env.PATH = "${tool 'ant'}/bin;${env.PATH}"
        sh "ant ${Parameters}"
    }
    else {
        env.PATH = "${tool 'ant'}\\bin;${env.PATH}"
        bat "ant ${Parameters}"
    }
}