当前位置: 首页 > 面试题库 >

如何在Jenkins管道中导入类文件?

养枫涟
2023-03-14
问题内容

我有一个包含类的文件。范例:

abstract class TestBase
{
    String name
    abstract def fTest()

    def bobby(){
        return "bobby"
    }
}
class Test extends TestBase
{
    def fTest(){
        return "hello"
    }
}
class Test2 extends TestBase
{
    def fTest(){
        return "allo"
    }
    def func(){
        return "test :)"
    }
}

我想将文件导入到我的Jenkins管道脚本中,因此可以创建我的一个类的对象。例如 :

def vTest = new Test()
echo vTest.fTest()
def vTest2 = new Test2()
echo vTest2.func()

如何在Jenkins Pipeline中导入文件?谢谢。


问题答案:

您可以这样:

Classs.groovy

class A{
    def greet(name){ return "greet from A: $name!" }
}

class B{
    def greet(name){ return "greet from B: $name!" }
}

// this method just to have nice access to create class by name
Object getProperty(String name){
    return this.getClass().getClassLoader().loadClass(name).newInstance();
}

return this

管道:

node{
    def cl = load 'Classes.groovy'
    def a = cl.A
    echo a.greet("world A")
    def b = cl.B
    echo b.greet("world B")
}


 类似资料:
  • 我目前正在尝试从jenkins管道中的文件加载一个自定义groovy类。我尝试了这里提出的解决方案: 如何在Jenkins管道中导入类文件? 作为... JenkinsPipelineUtilityClass.groovy 詹金斯档案 并尝试同样使用GroovyClassLoader(再次使用上述类) 詹金斯档案 我在这两方面都遇到了同样的错误: 我已经检查了正在进行的脚本批准,里面什么都没有,我

  • 问题内容: 我有一个XML文件,我想将其用作管道脚本的输入。问题是XMLParser不可序列化,因此我将其放在NonCPS函数中,但是因此丢失了Node对象。 这是管道脚本: 这是一个输入样本: 结果如下: 我正在使用Jenkins 2.7和管道2.1,这是最新的。 问题答案: 您可以使用XmlSlurper,它对我有用。

  • 可以在jenkins管道共享库中导入和使用常规java库吗?我想导入AWS SDK for java,并在管道代码中直接使用它。我必须将其添加到共享库的src dir中吗?

  • 问题内容: 我有一个小的groovy脚本要编辑,而Groovy中的依赖项管理存在问题。我是groovy的新手,如果这个问题有点studip /容易回答,请提前抱歉。我用作IDEA。 我尝试使用jenkins-core依赖关系来获取代码的自动完成,文档等等信息,但是它根本无法正常工作。我还尝试了Maven依赖关系,但它都没有作用。 现在开始我的问题:如何在Groovy中正确导入Jenkins的依赖关

  • 问题内容: 我有以下内容: 作为全球描述共享库创建这里。没什么特别的,文件夹中的一个脚本名为,可以尝试-工作。图书馆被称为 名为 调用的管道脚本正在调用 现在,当我像这样运行构建时,出现以下错误: 错误:找不到库的任何定义[myOneLib] 但是当我简单地将行移动到所有工作的顶部时。 所以我的问题是如何在导入/包含的脚本中使用?还是有其他方法可以指定全局库? 很少有其他注释:并且都在同一个git

  • 问题内容: 我的Jenkins 2.19.4使用管道:声明式代理程序API 1.0.1。如果您无法定义变量来分配读取的属性,那么如何使用readProperties? 例如,要捕获SVN版本号,我目前以脚本样式使用以下代码捕获它: 然后我可以使用: 由于以声明式定义svnProp是不合法的,因此如何使用readProperties? 问题答案: 您可以使用标记内的步骤来运行任意管道代码。 所以符合