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";
}
}
调用脚本管道中的方法 *
然后你像这样调用一个静态方法:
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();
4条答案
按热度按时间o8x7eapl1#
无需在“Manage Jenkins”中进行配置。我们可以在Pipeline脚本中使用“LibraryIdentifier”来加载jenkins构建中的库。
aydmsdu92#
你可以像这样从源代码控制(如git)加载库:
假设这是groovy类:
然后你像这样调用一个静态方法:
和一个像这样的示例方法:
1.动态加载库
zvms9eto3#
正如上面的一些答案中提到的,您可以在运行时使用库标识符加载库,或者您也可以在尝试运行的Jenkins作业的文件夹级别配置库。在大多数情况下,开发人员无法获得Jenkins的管理员访问权限。但是,他们可以访问和更新文件夹级别的配置。你可以检查你是否有这些特权。在运行时为所有管道脚本加载库会更方便。
b4lqfgs44#
我正在加载一个共享库,实际上只是
vars/
目录中的东西,使用与其他答案相同的机制,但我们可以使其更简洁(thanks to this answer):通常你会在
@
之前放置某种标识符,但在这里它没有任何用处,因为我们导入的所有东西(从vars/
导入的groovy文件)都创建了自己的全局变量,以文件名命名。所以我们可以省略这个标识符,只指定(当前repo的)分支。只要你的管道文件是从SCM加载的,你也可以让
retriever
参数很短。我在其他地方看到过modernSCM()
,但对我来说不起作用,而legacySCM()
却起作用。注意:我们使用的是一个函数调用
library()
,而不是注解@Library()
。它们似乎是不同的/不可互换的。