作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个 Jenkins 共享库。
目录结构如下:
project
- src
--- Operations.groovy
- vars
--- entry.groovy
现在在 entry.groovy 我的代码是:
import Operations;
def call(body) {
def operation=new Operation();
podTemplate(xxxxxx) {
node(nodelabel){
operation.stage_checkout()
}
}
}
在 Operations.groovy 中:
class Operations {
def stage_checkout(){
stage('Checkout') {
checkout scm
}
}
}
当我尝试在 Jenkins 中运行它时,出现如下错误:
GitHub has been notified of this commit’s build result
groovy.lang.MissingPropertyException: No such property: scm for class: Operations
Possible solutions: ui
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:53)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.getProperty(ScriptBytecodeAdapter.java:458)
at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.getProperty(DefaultInvoker.java:39)
at
我认为“结帐”是 Jenkins 插件的内置方法。是否有任何正确的方法或指南可以帮助我正确使用 Jenkins 内置方法?
最佳答案
您可以通过对工作流脚本的引用来使用内置的 Jenkins 管道步骤。您可以将引用传递给 Operations
通过传递 this
通过构造函数类目的。考虑以下示例:
vars/entry.groovy :
import Operations;
def call(body){
def operation=new Operation(this); // passing a reference to workflow script
podTemplate(xxxxxx){
node(nodelabel){
operation.stage_checkout()
}
}
}
class Operations {
private final Script script
Operations(Script script) {
this.script = script
}
def stage_checkout(){
script.stage('Checkout') {
script.checkout script.scm
}
}
}
关于jenkins - 如何在类里面使用 Jenkins 的内置方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53188916/
我是一名优秀的程序员,十分优秀!