当前位置: 首页 > 知识库问答 >
问题:

使用Jenkins共享库作为类

丁鹏鹍
2023-03-14

我有一个Jenkins文件,我正在尝试从共享库实例化groovy类。我得到“无法解决类测试”

我有一个src/com/org/foo。共享库中的groovy文件:

package com.org

class Test implements Serializable{
  String val
  Test(val) {
    this.val = val
  }
}

我正试图在我的Jenkins文件中实例化它

@Library('Shared-Library@master') 
import com.org //also tried to use with .foo with no success

def t = new Test("a") //doesnt work
def t = new foo.Test("a")//doesnt work
def t = new com.org.foo.Test("a")//doesnt work

如果我将文件作为一个类引用(我没有对其构造函数的访问权限),那么它就会起作用。即:

@Library('Shared-Library@master')
def t = new foo.com.org.foo()

这很好,让我使用foo函数。但是,我失去了赋予类常量并用参数构造它的能力。

知道如何定义和使用共享库中的类吗?谢啦

共有1个答案

井礼骞
2023-03-14
  1. 类的作用域是默认作用域。您可以将范围更改为公共
@Library('Shared-Library@master') 
import com.org.*;

stages{
   stage('Demo') {  
      steps{
         script{
            def t = new Test("a") //this should work
         }
      }
   }
}  
 类似资料:
  • 我通过jenkins管道(共享库)运行此代码。 它在本地工作,但在Jenkins管道中,我得到以下错误: 请帮帮我

  • 我将我的Jenkins Pipeline存储为Jenkins共享库中的Groovy脚本。我想为不同的工作使用不同的版本。我的共享库脚本称为如下: 我已将sharedLib repo中的不同版本标记为。万一我想用v1。0,我用注释引用了它,如下所示。 在我的工作中,我通过调用groovy脚本访问了共享库,并使用了上面的注释,如图所示: 我运行这项工作时出错了。以下是我看到的错误。 当我使用。我哪里出

  • 可以合并多个共享Jenkins库吗? 例如,我有一个公共共享库:我的共享库(带有maven项目的git存储库)定义在包含一些作业的jenkins文件夹上。在该文件夹中运行的每个作业都可以使用Jenkins文件中的共享库,包括: 现在,我想创建另一个共享库:包含一些专门管道的my-专门化共享库(在另一个git存储库中,也作为maven项目)。我的专用共享库中的管道(groovy类、脚本等)应该能够使

  • 我正在管道中使用共享groovy库。我发现,当我合并到我的库时,会触发使用库的作业子集(但不是全部)。 我已经查看了共享库配置,并验证了“在作业最近的更改中包含@库更改”没有被选中。我梳理了日志,寻找线索,我发现看似随机的作业会被合并触发,但我还不能确定为什么这些特定的作业会运行。 我目前的想法是 /github-webhook/只是引发了太多的工作。 我正在使用groovy库插件的Jenkins

  • 我正在创建自己的Jenkins共享库,以便在管道之间重用一些代码。我知道如何创建步骤(确实很容易),但是当我想在jenkinsfile中访问我的“utils类”(或者如Jenkins在日志中所说的工作流脚本)时,我有一个问题。我叫"Util类"位于文件夹src/我的/域/...,有很多方法,例如,我想创建一个日志类,这样: 然后我尝试在/vars/library中的一个文件中实例化。groovy

  • 我刚开始使用IntelliJ,我的SharedLibrary越来越大,所以我想搬到IDE。我明白了。gdsl用于自动完成等(基本工作:) 但是,当我的脚本使用@库符号时,我得到了错误(无法解析符号等),我是java世界中的“孩子”(. net日报),我想我错过了一些Jenkins依赖项,但哪一个? 此项目仅适用于共享库,其他:)有什么提示吗?