使用管道的共享库访问Jenkins实例

使用管道的共享库访问Jenkins实例,jenkins,shared-libraries,jenkins-pipeline,Jenkins,Shared Libraries,Jenkins Pipeline,我们非常喜欢使用一些在管道中不再受支持的插件,并且希望在管道的共享库中实现它们的使用。其中一个主要的项目是获得Jenkins实例,有人能分享一种方法吗 在“src”或“vars”文件夹下获取Jenkins.getActiveInstance()是否有任何限制或适当的方法 我曾尝试在src代码和vars代码下获取Jenkins.getActiveInstance(),但它返回null,我是否遗漏了什么?任何帮助都将不胜感激 谢谢试试“Hudson.instance”。下面这个管道在Jenkins

我们非常喜欢使用一些在管道中不再受支持的插件,并且希望在管道的共享库中实现它们的使用。其中一个主要的项目是获得Jenkins实例,有人能分享一种方法吗

  • 在“src”或“vars”文件夹下获取Jenkins.getActiveInstance()是否有任何限制或适当的方法
  • 我曾尝试在src代码和vars代码下获取
    Jenkins.getActiveInstance()
    ,但它返回null,我是否遗漏了什么?任何帮助都将不胜感激


    谢谢

    试试“Hudson.instance”。下面这个管道在Jenkins 2.32.x上为我工作。您可能需要执行一些脚本批准或关闭沙箱

    pipeline {
    
        agent none
    
        stages{
    
            stage('Instance Info') {
    
                steps {
                    script {
    
                        def jenkinsInstance = Hudson.instance
    
                        for (slave in jenkinsInstance.slaves) {
    
                            echo "Slave: ${slave.computer.name}"
                        }
                    }
                }
            }
        }
    }
    

    Bill

    此票据可以关闭,但问题很少: 1.通过(管理Jenkins->脚本审批)修复访问权限
    2.一些脚本包含非cps代码

    即使沙箱关闭,并且该代码在
    @NonCPS
    方法下运行,我仍然得到
    java.io.NotSerializableException:hudson.model.hudson
    。结果是我需要对分配给
    hudson.instance
    的变量进行
    def
    声明。i、 例如,
    def foo=Hudson.instance
    works
    foo=Hudson.instance
    没有。