2016-11-18 2 views
0

Может ли кто-нибудь посоветовать о том, как загрузить внешний класс groovy в файл Jenkins? В общем, я хотел бы создать экземпляр путем передачи параметров через конструктор. Пример кода ниже.Jenkins Pipeline Jenkinsfile load external groovy class

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() ; 

в вашем Tools.groovy вы должны иметь обратное заявление ... Так как вы хотите вызовите функции внутри класса, вы должны вернуть новый Demo() в конце, это вернет ссылку объекта на mytools.

В дополнение к этому вы всегда можете использовать классный загрузчик классов.

Смежные вопросы