2017-04-06 141 views
0

我最近开始编写Jenkins声明性流水线(CVS中的Jenkinsfile),并分几个阶段。在Jenkins声明性流水线中定义全局Ant工具

我想知道是否有办法只定义Ant一次,然后在所有阶段重复使用相同的命令。

而不是重复蝙蝠“%ANT_HOME%/ bin中/ ant.bat the_ant_target_to_run”的话,我宁愿不要做这样的:蚂蚁干净编译

pipeline { 
    agent any 
    stages { 
     stage("Build") { 
      steps { 
       echo "Building application..." 
       bat "%ANT_HOME%/bin/ant.bat clean compile" 
      } 
     } 
     stage("Unit Tests") { 
      steps { 
       echo "Unit tests (JUnit)..." 
       echo "Mutation tests (pitest)..." 

       bat "%ANT_HOME%/bin/ant.bat run-unit-tests" 
       bat "%ANT_HOME%/bin/ant.bat run-mutation-tests" 
      } 
     } 
     stage("Functional Test") { 
      steps { 
       echo "Selenium tests..." 
      } 
     } 
     stage("Performance Test") { 
      steps { 
       echo "JMeter tests..." 
      } 
     } 
     stage("Quality Analysis") { 
      steps { 
       echo "Running SonarQube..." 
      bat "%ANT_HOME%/bin/ant.bat run-sonarqube-analysis" 
      } 
     } 
     stage("Security Assessment") { 
      steps { 
       echo "Pen testing..." 
      } 
     } 
     stage("Approval") { 
      steps { 
        input "Is the build OK?" 
     } 
     } 
     stage("Deploy") { 
      steps { 
       echo "Deploying to JBoss 7.2..." 
      } 
     } 
    } 
    post { 
     always { 
     junit '/test/reports/*.xml' 
      } 
    }  
} 

回答

1

你可以去管理詹金斯一节,然后全球工具配置

那里你可以添加蚂蚁安装。

然后在管道中添加行: antHome = tool'ANT' - 您在配置中为您的蚂蚁命名的名称。

后,您可以使用它作为一个参数

首页它可以帮助

+0

我已经安装了(名字是“蚂蚁安装”)。将尝试它并获取更新。 –

+0

你能提供一个你的建议的具体例子吗?当你说“你可以用它作为参数”时,你使用$ antHome还是$ {antHome}来访问它? –

+1

DEF mvnHome 阶段( '制备'){ DIR( './' + microserviceName){ deleteDir() } mvnHome =工具 '的Maven' } 阶段( '生成'){// 运行maven build dir('./'+ microserviceName){ sh''$ {mvnHome}/bin/mvn'-s mvn_settings.xml -U clean install } } –