在JenkinsFile中只声明一次configFileProvider,并在所有阶段中引用。

问题描述 投票:5回答:1

我试图为我们的管道自动化设置脚本JenkinsFile,并希望在maven中使用configFileProvider,因此,我最终在脚本JenkinsFile的所有maven阶段中定义了这个块。因此,我最终在脚本JenkinsFile的所有maven阶段中定义了这个块,有没有办法在脚本中只定义一次并在所有阶段中引用它。我的JenkinsFile目前看起来是这样的:-。

node {
   
   
   def mvnHome
   def mvnSettings
   
   stage('Prepare') {
      mvnHome = tool 'maven-3.5.4'

   }

   stage('Checkout') {
      checkout scm
   }
   
   stage('Build'){
      configFileProvider(
        [configFile(fileId: '**********', variable: 'MAVEN_SETTINGS')]) {
        sh "'${mvnHome}/bin/mvn' -s $MAVEN_SETTINGS install"
      }
   }
   
   stage('Integration Test') {
   
   
       sh "'${mvnHome}/bin/mvn' -Dmaven.test.failure.ignore clean verify"
   }
   
   stage('Sonar') {
      configFileProvider(
        [configFile(fileId: '**********', variable: 'MAVEN_SETTINGS')]) {
   		sh "'${mvnHome}/bin/mvn' -s $MAVEN_SETTINGS sonar:sonar"
		}
   }

   stage('Packaging') {
      configFileProvider(
        [configFile(fileId: '**********', variable: 'MAVEN_SETTINGS')]) {
        sh "'${mvnHome}/bin/mvn' -s $MAVEN_SETTINGS package"
        }
   }

   stage('Deploy') {
      configFileProvider(
        [configFile(fileId: '**********', variable: 'MAVEN_SETTINGS')]) {
		
        sh "'${mvnHome}/bin/mvn' -s $MAVEN_SETTINGS deploy}"
      } 
     }
    }

如果有任何帮助或建议,我们将一如既往地感激不尽。

干杯。

阿什利

jenkins groovy jenkins-plugins jenkins-pipeline jenkins-groovy
1个回答
0
投票

既然是脚本,你就不必遵循一个僵硬的结构,虽然不好看,但你可以改变顺序,把阶段放在configFileProvider里。

configFileProvider(
            [configFile(fileId: '**********', variable: 'MAVEN_SETTINGS')]) {

    stage('Build'){
        sh "'${mvnHome}/bin/mvn' -s $MAVEN_SETTINGS install"
    }

    stage('Integration Test') {
        sh "'${mvnHome}/bin/mvn' -Dmaven.test.failure.ignore clean verify"
    }

    stage('Sonar') {
        sh "'${mvnHome}/bin/mvn' -s $MAVEN_SETTINGS sonar:sonar"
    }

    stage('Packaging') {
        sh "'${mvnHome}/bin/mvn' -s $MAVEN_SETTINGS package"
    }

    stage('Deploy') {   
        sh "'${mvnHome}/bin/mvn' -s $MAVEN_SETTINGS deploy}"
    }
}

最好的,André

© www.soinside.com 2019 - 2024. All rights reserved.