共享库 "vars" 文件夹结构 - 我可以添加子文件夹吗?
Shared libraries "vars" folder structure - can I add subfolders?
来自 Extending with Shared Libraries - Directory structure 我创建了一个共享库,其中我有多个 *.groovy 文件在 vars 文件夹中实现全局变量。
我可以将子文件夹添加到 vars 以更好地组织我的文件吗?我试过了,但在使用全局变量时没有运气。是否需要使用特定语法来引用子文件夹中的文件?或子文件夹不受支持?
不幸的是,不,你不能。 Jenkins 的问题跟踪器中有一个 declined improvement request。给出的原因是文件名直接映射到变量名。
Other approaches 典型 Groovy 喜欢
evaluate(new File("../tools/Tools.groovy"))
效果不佳,因为 Jenkins 全局变量文件不是本机 Groovy 代码,而是经过处理的。
但是,您可以使用一些东西来更好地组织那些不是 custom pipeline steps 的辅助函数。
我有一个 includes.groovy
文件,其中包含不同的函数,例如
def doSomething() {
}
def doSomethingElse() {
}
在 customPipelineStep.groovy
文件中,我可以使用
访问它们
def call() {
includes.doSomethingElse()
}
所以 includes
在某种程度上像命名空间一样工作,您可以有多个这样的实用程序文件。它们不是文件夹,但有助于整理东西。
除了在单个文件中定义自定义步骤,您还可以将它们组合在文件中,但是您必须将它们包装在管道中的脚本块中才能访问它们,正如所指出的 in the documentation .同样地,include-functions 在脚本块中也是公开可用的,所以要注意它们不是私有的。
来自 Extending with Shared Libraries - Directory structure 我创建了一个共享库,其中我有多个 *.groovy 文件在 vars 文件夹中实现全局变量。
我可以将子文件夹添加到 vars 以更好地组织我的文件吗?我试过了,但在使用全局变量时没有运气。是否需要使用特定语法来引用子文件夹中的文件?或子文件夹不受支持?
不幸的是,不,你不能。 Jenkins 的问题跟踪器中有一个 declined improvement request。给出的原因是文件名直接映射到变量名。
Other approaches 典型 Groovy 喜欢
evaluate(new File("../tools/Tools.groovy"))
效果不佳,因为 Jenkins 全局变量文件不是本机 Groovy 代码,而是经过处理的。
但是,您可以使用一些东西来更好地组织那些不是 custom pipeline steps 的辅助函数。
我有一个 includes.groovy
文件,其中包含不同的函数,例如
def doSomething() {
}
def doSomethingElse() {
}
在 customPipelineStep.groovy
文件中,我可以使用
def call() {
includes.doSomethingElse()
}
所以 includes
在某种程度上像命名空间一样工作,您可以有多个这样的实用程序文件。它们不是文件夹,但有助于整理东西。
除了在单个文件中定义自定义步骤,您还可以将它们组合在文件中,但是您必须将它们包装在管道中的脚本块中才能访问它们,正如所指出的 in the documentation .同样地,include-functions 在脚本块中也是公开可用的,所以要注意它们不是私有的。