我正在寻找一些关于Jenkins共享库类设计的指导。使用全局变量作为共享库可以很好地工作,但每次我在src/中定义一个类并希望导入它时,都会遇到无法解析该类的错误。
这是我的共享库结构:
src
- de
- schlumpf
- Tester.groovy
vars
- sayHello.groovy
类测试员。棒极了
下面是我想在管道作业中初始化的类的代码。
package de.schlumpf
public class Tester implements Serializable {
public String name = "test"
Tester(String pName) {
this.name = pName
}
def sayHi() {
echo "Hello, ${this.name}."
}
def sayHi(String name) {
echo "Hello, ${name}."
}
}
你好。棒极了
#!/usr/bin/env groovy
def call(String name = 'human') {
echo "Hello, ${name}."
}
管道作业
@Library('pipeline-library-demo')
import de.schlumpf.Tester //de.schlumpf doesn't work as well
stage('Demo') {
echo 'Hello world'
sayHello 'test'
def t = new Tester('Alice')
t.sayHi()
}
在第2行中,我得到错误:无法解析类de.schlumpf.测试器。全局变量sayHello就像一个魅力...有人知道我在这里做错了什么吗?
我知道这个看起来和这个很像,但我找不到一个打字错误或是在我的路径上。。。使用Jenkins共享库作为类
官方文件如下:https://jenkins.io/doc/book/pipeline/shared-libraries/
版本
当我动态加载库时,调用静态函数时遇到类似问题:https://www.jenkins.io/doc/book/pipeline/shared-libraries/#loading-动态库
这应该适合您:
def myLib = library 'pipeline-library-demo'
def t = myLib.de.schlumpf.Tester.new('Alice')
t.sayHi()
它引发了一个错误,因为您在脚本块之外创建了一个类的对象。尝试下面的代码,它应该可以工作。
@Library('pipeline-library-demo')
import de.schlumpf.*;
stages{
stage('Demo') {
steps{
echo 'Hello world'
sayHello 'test'
script{
def t = new Tester('Alice')
t.sayHi()
}
}
}
}
问题内容: 我正在尝试为CI流程编写Jenkins共享库。我想引用在文件夹中定义的全局函数内的文件夹中的类,因为它可以使我将大多数逻辑放在类中,而不是在全局函数中。我正在遵循Jenkins官方文档中记录的存储库结构: Jenkins Shared Library结构 这是我所拥有的简化示例: /src/com/example/SrcClass.groovy /vars/classFromVars.
我有一个Jenkins文件,我正在尝试从共享库实例化groovy类。我得到“无法解决类测试” 我有一个src/com/org/foo。共享库中的groovy文件: 我正试图在我的Jenkins文件中实例化它 如果我将文件作为一个类引用(我没有对其构造函数的访问权限),那么它就会起作用。即: 这很好,让我使用foo函数。但是,我失去了赋予类常量并用参数构造它的能力。 知道如何定义和使用共享库中的类吗
目前,我正在我的项目中创建一个Jenkins共享库,在实例化一个对象时遇到了一个问题。 我的应用程序的树结构 -day#1 --/詹金斯档案 --/src/File1。groovy --/测试/文件1规范。groovy --/vars/file1。groovy 从我的Jenkins文件中,我可以调用file1。函数,inturn将创建写入文件中的类对象/src/File1。groovy和它工作得很
我通过jenkins管道(共享库)运行此代码。 它在本地工作,但在Jenkins管道中,我得到以下错误: 请帮帮我
可以合并多个共享Jenkins库吗? 例如,我有一个公共共享库:我的共享库(带有maven项目的git存储库)定义在包含一些作业的jenkins文件夹上。在该文件夹中运行的每个作业都可以使用Jenkins文件中的共享库,包括: 现在,我想创建另一个共享库:包含一些专门管道的my-专门化共享库(在另一个git存储库中,也作为maven项目)。我的专用共享库中的管道(groovy类、脚本等)应该能够使
问题内容: 詹金斯版 2.89.4workflow -cps ver 2.42 当我尝试运行加载库的管道时,出现以下异常: 引用链接的Groovy类: 您可以像这样在管道或库中重现异常: 问题答案: 这是一个已知的詹金斯问题:JENKINS-45901 自2017年8月以来已开放。看起来很快不会修复: 不知道是否有详尽的文档记录了Groovy语言支持(或缺乏它),但是无论如何我都不会期望这个问题或