【发布时间】:2018-06-06 05:56:45
【问题描述】:
我试图从一个 groovy 脚本中获取信息,该脚本位于从共享库 Jenkins 类调用的 vars 下,但出现错误。一些信息:
需要 - 全局配置文件。类似于 管理 Jenkins -> 配置系统 -> 环境变量
目标 - 无需从 Jenkinsfile 发送参数即可在共享库中获取全局值。
- 我的解决方案 - 我尝试使用适用于 Jenkinsfile 但不适用于共享库的“vars/script.groovy”。
文件结构
.
├── src
│ └── org
│ └── jenkins
│ └──shared_library.groovy
│── vars
│ └── globals.groovy
│
│── jenkinsfile.groovy
vars/globals.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
}
jenkinsfile
@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.org.jenkins.shared_library
【问题讨论】:
标签: jenkins-pipeline jenkins-shared-libraries