关于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
哈德逊。远程处理。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_var()
,并且您正在尝试使用getVar()
。
我不确定上面的脚本中的错误来自哪里
非常棒。lang.MissingMethodException:没有方法的签名:Helpers。readFile()
编辑:基于OP注释
请看看这是否有帮助:
def workspace = Thread.currentThread().executable.workspace.toString()
我对Jenkins pipeline非常陌生,我正在Groovy中构建一个小型共享库<在这种情况下,我试图提出一些单元测试,然后我必须模拟管道对象。 基本上,我有一个Groovy类,其中包含一个方法,该方法使用凭据执行一些操作: 因此,当谈到这个方法的单元测试时,我创建了一个PipelineMock Groovy类来(尝试)用凭据和用户名密码模拟
我有以下Groovy脚本作为Jenkins管道的一部分 权限。棒极了 作为Jenkins管道的一部分,我将这个文件加载到另一个Groovy文件中,并调用get_job_permissions作为参数通过其中一个枚举。 pipeline.groovy Jenkins在这方面失败,并出现以下错误(我已经验证了在本例中'Script3'是使用enum参数获取_job_权限的调用)。 我知道脚本加载和调用
首先,我是新来的Java,Groovy和Jenkins,所以请对我有耐心;) 我正在准备一个带有管道支持的Jenkins服务器,以备将来在构建环境中使用。我们使用一种特殊的内部脚本语言,为此我必须用java编写一个包装器。只有在Groovy中才能完成这项工作,我们必须使用这种特殊的语言。 我尝试过很多方法将java库引用到这个jenkins项目中,但都没有成功。我主要是在https://githu
根据Andrew Bayer的说法,您不应该向其他人注入声明性管道。将来可能会有人支持它,但可能不会。 我目前正在尝试在管道中启动一个管道,但我想知道我需要做什么才能使它工作。jenkins网页上的文档说明,如果新作业或管道与第一个作业或管道位于同一文件夹中,则可以从直接名称或绝对路径调用它。我已经尝试了所有不同的方法,目前我正在尝试一个文件的绝对路径,我刚刚检查过它一秒钟前存在,但它说它不存在。
问题内容: 我们如何在Jenkins管道的Groovy脚本中传递参数? 我已经写了xyz.groovy,它可以很好地加载和执行,但是我想在其中传递参数而不是重复工作。我尝试传递负载’../xyz.groovy’param1param2但没有运气。 xyz.groovy 问题答案: 您是否在用参数调用的Groovy中创建方法?
我正在尝试在我的Jenkins管道中使用groovy-postbuild-plugin,我可以让它显示纯文本,但我不能使用它的参数。 所以这是有效的: 但是这个没有: 这是我得到的错误: