2016-11-18 233 views
0

任何人都可以建议如何加载外部groovy类到Jenkinsfile? 一般来说,我想通过构造函数传递参数来构建实例。 下面的示例代码。Jenkins管道Jenkinsfile加载外部groovy类

Jenkinsfile

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

} 

Tools.groovy

public class Demo { 
    String message; 

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


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

}

回答

0

如果外部常规文件是在JenkinsFile所在,你可以简单地使用 “负载” 同一个资源库在下面显示

mytools = load 'Tools.groovy' 

如果它在另一个回购时,需要加载常规文件,如下

checkout changelog: false, poll: false, scm: [$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'jenkins-scripts']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '******', url: 'https://github.com/jenkins_scripts.git']]] 
1
mytools = load 'Tools.groovy' 
public class Demo { 

} 
return new Demo() ; 

在之前签SCM您Tools.groovy你必须有一个return语句......既然你正在寻找调用类中的函数时,必须在最后返回新的Demo(),这会将对象的引用返回给mytools。

除此之外,您可以随时使用groovy类加载器。