【问题标题】:Do i have to use "call{}" in a shared library when using it in a Jenkins pipeline?在 Jenkins 管道中使用共享库时,我是否必须在共享库中使用“call{}”?
【发布时间】:2021-12-27 17:09:38
【问题描述】:

我正在努力将整个 Jenkins 从正常工作转变为 DSL/管道。必须为所有导入实现一个共享库。在上述库中有一大堆脚本。 目前,它们都是这样设置的:

package common

class Foo {
      static String bar(String text) {  stuff  }
      static String bar2(String text) {  stuff  }
      static String bar3(String text) {  stuff  }
}

并且正在筹备中:

#!/usr/bin/env groovy
@Library('jenkins-shared-libs') _
import common.*

有许多脚本和许多方法。我如何、在哪里以及不能使用 call() 来实际“调用”它们?

【问题讨论】:

  • “我如何、在何处以及不能使用 call() 来实际“呼叫”他们? - 不清楚你在谈论什么call() 方法,也不清楚你在问什么问题。是不是你有import common.* 你打算有import static common.Foo.*
  • 我不清楚将库导入管道时应该调用什么。班上?一个方法?我是否需要为每个方法本身创建一个脚本,因为它们都必须被称为“调用”?我会尝试添加“静态”。
  • "我是否需要为每个方法自己创建一个脚本,因为它们都必须被称为'调用'?" - 不。任何方法都不必调用"call"

标签: jenkins groovy jenkins-pipeline shared-libraries dsl


【解决方案1】:

如果您想在Foo 类中调用bar 方法,您可以执行以下任何操作:

选项 1:

common.Foo.bar('some argument')

选项 2:

import common.*

Foo.bar('some argument')

选项 3:

import static common.Foo.*

bar('some argument')

【讨论】:

    猜你喜欢
    • 2015-09-30
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    相关资源
    最近更新 更多