簡體   English   中英

如何在 jenkins 中實現共享庫,而不在“管理 Jenkins”中配置“全局管道庫”?

[英]How to implement shared library in jenkins, without configuring “Global Pipeline Libraries” in “Manage Jenkins”?

由於我無權訪問組織中的“管理 Jenkins”菜單,因此無法在“管理 Jenkins”的“全局管道庫”中配置我的共享庫。

有沒有其他方法可以實現這一點,而無需在 Manage Jenkins 中進行配置?

(或者)

是否可以通過管道腳本配置“全局管道庫”部分,而不管訪問權限如何?

如果可能,請您在答案中分享一些代碼片段。

無需在“管理 Jenkins”中進行配置。 我們可以使用 Pipeline 腳本中的“LibraryIdentifier”來加載 jenkins 構建中的庫。

加載庫

您可以像這樣從源代碼管理(如 git)加載庫:

def myLib= library(
    identifier: 'myLib@master', retriever: modernSCM
    (
        [
            $class: 'GitSCMSource',
            remote: 'https://bitbucket.org/shaybc/commonlib.git',
            credentialsId: 'bitbucketCreds'
        ]
    )
)

Groovy class 來自圖書館

假設這是 groovy class:

package my.domain

class Tester
{
    public static String staticTest()
    {
        return "this is from a static method";
    }

    public String test()
    {
        return "this is from an instance method";
    }
}

從腳本管道調用方法

然后你像這樣調用 static 方法:

myLib.my.domain.Tester.staticTest();

和這樣的實例方法:

// call the constructor (you can also call a constructor with parameters)
def tester = myLib.my.domain.Tester.new();

// call your instance method
tester.test();

閱讀更多:

  1. 動態加載庫

  2. @Library 注解和庫步驟的區別

  3. 私有共享庫示例

如上面的一些答案所述,您可以在運行時使用庫標識符加載庫,也可以在您嘗試運行的 Jenkins 作業的文件夾級別配置庫 在大多數情況下,開發人員無法獲得對 Jenkins 的管理員訪問權限。 但是,他們可以在文件夾級別訪問和更新配置。 您可以檢查您是否擁有這些權限。 在運行時為所有管道腳本加載庫會更方便。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM