Java 在Jenkins管道中使用外部Groovy文件
关于Jenkins管道和Groovy方法,我这里有两个问题。首先,我有多个构建,它们共享公共方法,所以我认为最好将所有这些都放在一个类中,然后为每个构建导入文件 我的Groovy脚本中的一个片段如下Java 在Jenkins管道中使用外部Groovy文件,java,jenkins,groovy,Java,Jenkins,Groovy,关于Jenkins管道和Groovy方法,我这里有两个问题。首先,我有多个构建,它们共享公共方法,所以我认为最好将所有这些都放在一个类中,然后为每个构建导入文件 我的Groovy脚本中的一个片段如下 import groovy.json.JsonSlurperClassic; import groovy.json.JsonSlurper; import java.util.regex.Pattern; import java.util.regex.Matcher; import java.uti
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非常陌生。请尝试以下方法:
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\u var()
,并且您正在尝试使用getVar()
我不确定上面的脚本中的错误是从哪里来的
groovy.lang.MissingMethodException:没有方法Helpers.readFile()的签名
编辑:基于OP评论
请查看此选项是否有帮助:
def workspace = Thread.currentThread().executable.workspace.toString()
啊,我刚刚意识到我用方法名做了什么。。。。愚蠢的错误,如果有帮助,请接受回答。你知道如何访问系统变量吗,因为它似乎无法识别
getenv
@richleiss,请检查编辑部分好吗?谢谢,最后一期,没有此类属性,它用于类
有什么想法吗?