【发布时间】:2020-02-06 21:18:16
【问题描述】:
我通过 DSL 插件在 Jenkins 中管理许多工作。该插件使用 .groovy 定义,所以我认为即使有人不使用 Jenkins 但使用 groovy 也可能会有所帮助。
一般来说,我想创建一个附加文件,它可能是一个 groovy 文件、JSON 或 YAML 等等。重要的是可以将该文件与我的 .groovy 文件连接起来。
在该文件中,我正在定义变量(而只是字符串),例如地址 IP 或其他内容 例如。
ip_gitlab: 1.2.3.4
default_user: admin
在我的 groovy 文件中,我希望能够使用这些变量。
这种方法在 groovy 中可行吗?
【问题讨论】:
-
当然可以。例如有groovy-lang.org/json.html。
-
如果可以在 DSL 插件中定义额外的类路径。然后放入您将添加到类路径 groovy 文件(如
class GLOBAL{ def a=111; def b=222; })的文件夹中。然后在代码中你应该能够访问它GLOBAL.a -
@daggett 我正在尝试你写的,但我总是遇到错误:
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'org.codehaus.groovy.runtime.InvokerHelper$1@641eff69' with class 'org.codehaus.groovy.runtime.InvokerHelper$1' to class 'javaposse.jobdsl.dsl.JobParent'这个错误发生在处理你的类 GLOBAL 期间 -
我忘了。对于每个定义的变量,应该有
static前缀。class GLOBAL{ static def a=111; static def b=222; }。但是您遇到的错误很奇怪。你能显示你声明的变量以及你如何在 dsl 中使用它吗? -
1.我的dsl配置postimg.cc/TLHK5k6h 2. dsl处理时出错postimg.cc/21F37jDs