我在这里有两个关于Jenkins管道和Groovy方法的问题。首先,我有多个共享常用方法的构建,因此最好将所有这些方法放在一个类中,然后为每个构建导入文件。
我的Groovy脚本的片段看起来像
import groovy.json.JsonSlurperClassic;
import groovy.json.JsonSlurper;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.util.HashSet;
import java.util.Set;
import java.io.Serializable;
Map get_var() {
def gradleVars = readFile "${env.WORKSPACE}/gradle-client/gradle.properties"
Properties properties = new Properties();
InputStream is = new ByteArrayInputStream(gradleVars.getBytes());
properties.load(is)
def sdk_version = "SDKVersion"
def SDK_VERSION = properties."$sdk_version"
return [sdk_version: "$SDK_VERSION"}
}
在我的管道脚本中我有
def groovyMethod = load("release_pipeline.groovy")
// Call method
groovyMethod.getVar()
我遇到的第一个问题是如何在我的方法中使用${env.WORKSPACE}
,其次如何在出现错误时在我的脚本中使用readFile
hudson.remoting.ProxyException:groovy.lang.MissingMethodException:没有方法签名:Helpers.readFile()
我是Groovy和Java的新手。
答案 0 :(得分:1)
请你试试下面的内容:
def getVar() {
def properties = new Properties()
File propertiesFile = new File("${System.getenv['WORKSPACE']}/gradle-client/gradle.properties")
properties.load(propertiesFile.newDataInputStream())
return [sdk_version: properties.SDKVersion]
}
可能看起来,您有不同的方法名称get_var()
,并且您尝试使用getVar()
。
而且我不确定那个错误来自上面的脚本
groovy.lang.MissingMethodException:没有方法签名:Helpers.readFile()
编辑:基于OP评论
请查看这是否有帮助:
def workspace = Thread.currentThread().executable.workspace.toString()