从Pipeline调用的Gpars withPool方法

时间:2016-08-22 10:56:05

标签: jenkins groovy jenkins-pipeline gpars

我的GParsPool.withPool在'PreVerifymanager.groovy'中实现,如下所示。

import groovyx.gpars.GParsPool


public class PreVerifyManager {

    static final THREADS = 3;
    public void callMe() {

        PreVerifyManager pf = new PreVerifyManager()

        def apps = ["App1","App2","App3"]
        GParsPool.withPool(PreVerifyManager.THREADS) {
            apps.eachParallel {
                pf.CreateFile(it)
            }
        }

    }


    public void CreateFile(String path){
        path = "D:\\"+path+".txt";
        println(path)
        File file = new File(path)
        file.write("Some text")


    }
}

这在我的IDE中使用PreVerifyManager的主方法可以正常工作。但是当我删除main方法并在Pipeline脚本中创建的PreVerifyManager对象上调用方法callMe时,它无效。

管道脚本如下:

node {
    def PreVerifyManagerObj

    stage 'TibcoConfig'
    echo 'Reading Tibco configuration!'
    println "****************INSIDE PIPELINE****************"
    def parent = getClass().getClassLoader()
    def loader = new GroovyClassLoader(parent)

    PreVerifyManagerObj = loader.parseClass(new File("D://Tibco_Automation//src//com//meet//PreVerifyManager.groovy")).newInstance()

    PreVerifyManagerObj.callMe()
   }

基本上,我正在将GParsPool.withPool实现与Pipeline脚本集成。任何意见都表示赞赏。

1 个答案:

答案 0 :(得分:0)

问题得到解决。在调用实际方法之前,必须将类中引用的所有对象加载到Pipeline脚本框中。