Java 在Jenkins管道中使用外部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

关于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非常陌生。

请尝试以下方法:

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,请检查编辑部分好吗?谢谢,最后一期,
没有此类属性,它用于类
有什么想法吗?