如何引用詹金斯全球共享库

时间:2019-07-25 18:42:25

标签: jenkins jenkins-groovy

在回顾docs(关于SO的许多问题)并尝试十几种不同的脚本配置之后,我不知道如何引用共享的Groovy库。我已经像这样添加了库:

Jenkins Library Config

这似乎正在工作。我像这样引用脚本:

Jenkins script reference in build

您可以在其中看到错误消息:

  

脚本1:1:无法解析类库,无法找到类   用于注释@第1行,第1列。@Library('sonarQubeAPI')_

脚本代码(我认为并不重要)看起来像这样:

import groovy.json.JsonSlurper

class SonarQubeAPI{
    static string getVersion(){
        return "1.0";
    }

    static void getSonarStatus(projectKey){
        def sonarQubeUserToken = "USERTOKEN";
        def projectStatusUrl = "pathtosonarqube/api/qualitygates/project_status?projectKey=" + projectKey;

        println("Retrieving project status for " + projectKey);

        def json = getJson(sonarQubeUserToken, projectStatusUrl);

        def jsonSlurper = new JsonSlurper();
        def object = jsonSlurper.parseText(json);

        println(object.projectStatus.status);
    }

    static string getJson(userToken, url){
        def authString  = "${userToken}:".getBytes().encodeBase64().toString();

        def conn = url.toURL().openConnection();
        conn.setRequestProperty( "Authorization", "Basic ${authString}" );

        return conn.content.text;
    }
}

我可能只是一个魔术人物,但我似乎无法将其锁定。

1 个答案:

答案 0 :(得分:0)

Shared libraries是Jenkins Pipelines的功能,而不是Jenkins(核心)本身的功能。您只能在管道作业(以及子类型(例如多分支管道)中)中使用它们。