我试图从一个位于vars下的新脚本中获取信息,该脚本是从共享库Jenkins类调用的,但出错了。
>
需要-全局配置文件。
目标-能够在共享库中获取全局值,而无需从Jenkins文件发送参数。
文件结构
.
├── src
│ └── org
│ └── jenkins
│ └──shared_library.groovy
│── vars
│ └── globals.groovy
│
│── jenkinsfile.groovy
变量/全局变量。棒极了
def my_global() {
return 'my_global_name'
}
shared_library类
package src.org.jenkins
class shared_library implements Serializable {
private steps
shared_library(steps) {
this.steps = steps
}
def some_func(){
println globals.my_global
}
詹金斯档案
@Library 'shared_library'
import org.jenkins.shared_library
my_shared_library = new shared_library(steps)
node(){
stage('my_first_stage'){
println globals.my_global
}
stage('my_second_stage'){
println shared_library.some_func()
}
}
因此,我可以看到管道中第一次打印的值,但对于第二次打印,我得到:
类:src没有这样的属性:globals。组织。詹金斯。共享图书馆
如果您对在中定义值感到满意。属性或。json文件您可以使用“资源”文件夹
共享库/资源/global.properties
在管道脚本或var/script中。棒极了
使用库资源方法
globalPropertyContent = libraryResource 'global.properties'
访问属性值,如:
globalPropertyContent.PROJECT_NAME
您还需要使用steps对象来访问全局对象:
def some_func(){
println steps.globals.my_global()
}
以你为例,这将成为
package src.org.jenkins
class shared_library implements Serializable {
private steps
shared_library(steps) {
this.steps = steps
}
def some_func(){
println steps.globals.my_global()
}
编辑:刚刚看到你的Jenkins文件也有输入错误。需要使用共享库对象而不是“my_second_stage”中的类:
@Library('shared_library')
import org.jenkins.shared_library
my_shared_library = new shared_library(steps)
node(){
stage('my_first_stage'){
println globals.my_global()
}
stage('my_second_stage'){
println my_shared_library.some_func()
}
}
问题内容: 我正在尝试为CI流程编写Jenkins共享库。我想引用在文件夹中定义的全局函数内的文件夹中的类,因为它可以使我将大多数逻辑放在类中,而不是在全局函数中。我正在遵循Jenkins官方文档中记录的存储库结构: Jenkins Shared Library结构 这是我所拥有的简化示例: /src/com/example/SrcClass.groovy /vars/classFromVars.
问题内容: 注意到,创建一个可执行文件,我刚刚得到了奇怪的想法来检查时,我尝试运行它......好结果是发生了什么 段错误 我自己的库。因此,对此感到好奇,我试图“运行” glibc(在我的系统上)。果然,它没有崩溃,但是提供了一些输出: 所以我的问题是:这背后的魔力是什么?我不能只在库中定义符号-可以吗? 问题答案: 我写 了一篇 有关该主题的博客文章,在此我进行了更深入的介绍,因为我发现它很有
问题内容: 谁能告诉我如何对共享库进行运行时调试? 我需要在运行时调试共享库中的一个函数,但另一个程序会调用它。如何使用共享库执行类似dbx的操作? 我在AIX上使用dbx。我想做的是gdb比dbx好吗? 问题答案: 您只需要使用可执行文件调用gdb(无论是您的文件还是第三方文件都没有关系)。这是一个示例,其中我调试 ls 命令并在(共享) c库中 设置断点。此示例使用了gdb 6.8,它支持延迟
我的groovy脚本都在git存储库中,使用jenkins checkout SCM。其中一个groovy脚本中有一些常用函数,我想使这个groovy成为一个共享库,而无需打开jenkins并在jenkins管理表中添加共享库。 我可以使用RESTAPI或其他方法添加新库吗?
我通过jenkins管道(共享库)运行此代码。 它在本地工作,但在Jenkins管道中,我得到以下错误: 请帮帮我
我有一个名为“jenkins共享库”的jenkins共享库的存储库,现在我创建了一个名为“test”的新分支, 我有一个应用程序需要在jenkins文件中使用这个jenkins共享库,目前它被称为 我想在我的jenkins文件中使用我的jenkins共享库的这个特定测试分支,我如何使用jenkins共享库的特定分支???