簡體   English   中英

使用Jenkins管道共享庫的自定義步驟中的共享庫類

[英]Using a shared library class from a custom step with Jenkins pipeline shared libraries

我正在為Jenkins管道設置一個共享庫,並試圖弄清楚如何將共享庫中的類導入到我正在編寫的自定義步驟中。

這是目錄結構的樣子:

src
--jenny
----util
------Versioning.groovy
vars
--calculateVersion.groovy

Versioning.groovy文件定義了一些執行某些操作的靜態幫助器方法。

package jenny.util
class Versioner implements Serializable {
    static bool checkForValidVersion(version) {
        return true
    }
}

我想從calculateVersion.groovy調用這個方法,如下所示:

def call(version) {
    return jenny.util.Versioner.checkForValidVersion(version)
}

這樣我的聲明性管道可以調用: def valid = calculateVersion "1.0.0"

但我收到此錯誤No such property: jenny for class: calculateReleaseVersions

是否可以從vars中的文件引用共享庫中的類來定義自定義步驟以及如何完成?

對的,這是可能的。 至少對我們來說:

就像在普通的java(或groovy)中一樣,我們將一個import語句放入vars的groovy腳本中。 在你的情況下,這將是:

import jenny.util.Versioner

def call(version) {
    return Versioner.checkForValidVersion(version)
}

我剛發現的另一件事:看起來類Versioner的文件名與類名不匹配: Versioning.groovy 這可能是問題嗎?

如果這不起作用,您可能希望升級管道插件版本。

暫無
暫無

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

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