如何使用groovy配置文件提供程序插件

时间:2016-06-14 18:11:18

标签: jenkins-pipeline

我有一个jenkins文件,它正在加载一个groovy脚本,并希望在groovy中使用config-file-provider插件。我在文档中读到添加了支持,但在运行mvn clean install -s settings.xml时,并不知道如何使用groovy添加它来使用特定的settings.xml文件。看起来此列表支持此插件 - > https://github.com/jenkinsci/pipeline-plugin/blob/master/COMPATIBILITY.md

2 个答案:

答案 0 :(得分:2)

想知道你是否找到了答案,使用groovy的maven示例(用于管道的groovy)实际上是在插件页面中记录的,在这里:

https://wiki.jenkins.io/display/JENKINS/Config+File+Provider+Plugin#ConfigFileProviderPlugin-UsingtheconfigurationfilesinJenkinsPipelines

node {

    git url: 'https://github.com/spring-projects/spring-petclinic.git'

    // install Maven and add it to the path
    env.PATH = "${tool 'M3'}/bin:${env.PATH}"

    configFileProvider(
        [configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
        sh 'mvn -s $MAVEN_SETTINGS clean package'
    }

}

我只是尝试在我的管道中放置一个类似的块,在一个阶段步骤中,它工作。请注意,在上面的示例中,MAVEN_SETTINGS是临时XML文件的路径。 maven-settings是通过配置文件提供程序插件创建的文件的ID。

答案 1 :(得分:0)

当我使用JenkinsPipeline时,我需要执行一个步骤,在构建步骤之前添加配置文件。它适用于任何类型的构建,不仅适用于Maven。 但是,在用vars编写函数以与配置文件的动态列表配合时遇到了困难。

 stage('Add Config files') {
        steps {
            configFileProvider([configFile(fileId: 'JenkinsIDForFile1', targetLocation: 'DestinationFileForFile1')]) {
            // some block
            }
            configFileProvider([configFile(fileId: 'JenkinsIDForFile1', targetLocation: 'DestinationFileForFile2')]) {
            // some block
            }
        }
 }

如果您可以在ID中使用“-”,请使用双引号:“ File-ID-with-dash”