【问题标题】:How to call functions in one Jenkins Shared Library from another如何从另一个调用一个 Jenkins 共享库中的函数
【发布时间】:2018-01-17 19:42:51
【问题描述】:

我有两个独立的库(库 A 和库 B),我在 jenkins 配置中定义了它们,因此它们都可以从管道中调用。

我想从库 A 调用一些在库 B 中定义的函数/方法。

我的逻辑告诉我,我需要在库 A 中导入并可能创建一个库 B 的实例,然后才能访问任何库 B 方法。但我一直没有成功。我不是 Java 专家,但非常感谢任何指导。

【问题讨论】:

  • 我看到这个真正有效的唯一方法是使用libraryResource 步骤动态引入另一个库。

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


【解决方案1】:

这取决于库的存储位置。

如果它们位于 ./vars/ 下,则不需要导入它们,因为 Jenkinsfile 已经通过 @Library('sharedLibs') _ 导入了所有脚本。你就叫它def a = LibraryB.functionA()

如果是在传统的 ./src/com/something/whatevas 下,那么你会在库 A 的顶部做一个更传统的 import com.something.whateva.Library

【讨论】:

    【解决方案2】:

    在 Jenkinsfile 中:

    @Library(['libA', 'libB']) _
    

    你可以在它们之间调用:

    import org.myorg.PruebaA / import org.myorg.PruebaB
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-27
      • 1970-01-01
      • 1970-01-01
      • 2019-01-21
      • 1970-01-01
      • 2017-04-06
      • 1970-01-01
      相关资源
      最近更新 更多