Jenkins Pipeline Jenkinsfile 加载外部 groovy 类

标签 jenkins groovy jenkins-pipeline

有人可以建议如何将外部 groovy 类加载到 Jenkinsfile 中吗? 一般来说,我想通过构造函数传递参数来构建实例。 下面是示例代码。

Jenkinsfile

stage('Demo stage') {
   //missing part  
  
}

工具.groovy

public class Demo {
     String message;
     
     Demo(String message) {
        this.message=message;
     }
     

    public void print(def script) {
        script.sh "echo " + message
    }
}

最佳答案

它需要一个辅助函数来执行此操作。

工具.groovy

public class Demo {
    String message;
     
    Demo(String message) {
        this.message = message;
    }

    public void print(def script) {
        script.sh "echo " + message
    }
}

Demo createDemo(String message) {
    new Demo(message)
}

return this

Jenkins文件

stage('Demo stage') {
   steps {
       script {
           Object lib = load 'path/to/Tools.groovy'
           Object demo = lib.createDemo('a demo')
           demo.print(this)
       }
   }
}

关于Jenkins Pipeline Jenkinsfile 加载外部 groovy 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40685744/

相关文章:

angular - Angular 2/Typescript 项目的持续集成

Jenkins - 如何在 Gerrit 补丁集上显示下游作业构建结果?

gradle - 扩展属性如何像同时采用闭包和对象的方法一样起作用

有条件地 append 到字符串的 Groovy 方法

jenkins - HTML Publisher 插件无法提取(仅当 Serenity 测试失败时)

jenkins - Jenkinsfile 中基于参数的表达式

Jenkins 的 PMD 插件 - 如何显示构建失败的报告?

git - Jenkins 尝试从 tomcat root 构建,而不是 JENKINS_HOME

python - Elasticsearch 1.7 scripted_metric 分析字符串

Jenkins 管道清除工作区