当前位置: 首页 > 知识库问答 >
问题:

Jenkins Groovy脚本缺少PropertyException

罗昱
2023-03-14

为了创建以下形式的json文件,我制作了如下的Groovy脚本,但出现了一个错误。

怎么了?

我在下一个网站。我认为我正确地编写了Groovy示例代码https://docs.groovy-lang.org/latest/html/gapi/groovy/json/JsonBuilder.html

示例json

{
    "loglevel": "INFO",
    "logformat":"%(asctime)s, %(funcName)s, [%(levelname)s] %(message)s",
    "logdateformat":"%Y-%m-%d %H:%M:%S",
    "webconsole": "192.168.152.154",
    "userid": "dGVzdA==",
    "userpw": "dGVzdA==",
    "headless": "true",
    "autoexit": "true",
    "os": {
        "scan": "True",
        "policy": null,
        "host": null,
        "ip": null,
        "domain": null,
        "os": "all"
    }
}

很棒的剧本

import jenkins.model.Jenkins
import groovy.json.*

// read build parameters
env = build.getEnvironment(listener)

loglevel = env.get('loglevel')
logformat= env.get('logformat')
logdateformat= env.get('logdateformat')
webconsole= env.get('webconsole')
userid= env.get('userid')
userpw= env.get('userpw')
headless= env.get('headless')
autoexit= env.get('autoexit')

scan= env.get('scan')
policy= env.get('policy')
host= env.get('host')
ip= env.get('ip')
domain=env.get('domain')
os= env.get('os')
Instance= env.get('Instance')

// prepare json
def builder = new JsonBuilder()
builder {
    loglevel  loglevel 
    logformat logformat
    logdateformat logdateformat
    webconsole webconsole
    userid userid
    userpw userpw
    headless headless
    autoexit autoexit

    dbms(
        scan: scan,
        policy: policy,
        host: host,
        ip: ip,
        domain: domain,
        os: os,
        instance: instance,
    )
}

json = builder.toPrettyString()

// print to console and write to a file
println json
new File("C:\\workspace\\jenkins\\_Test\\TestScript\\config.json").write(json)

詹金斯错误状态

ERROR: Build step failed with exception

groovy.lang.MisSingProperty tyExcema:没有这样的属性:类的实例:groovy.json.Json在org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:53)在org.codehaus.groovy.runtime.callsite.PogoGetProperty tySite.get属性-7/>)在org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:307)在Script1$_run_closure1.do呼叫(Script1.groovy:36)在Script1$_run_closure1.do呼叫(Script1.groovy)在sun.reflect.NativeMEDAccessorImpl.invoke0(本机方法)在sun.reflect.NativeMEDAccessorImpl.invoke(未知来源)在sun.reflect.委托的MEDAccessorInp. invoke(未知来源)在java. lang.反射。方法调用(未知来源)在org. codehaus. groovy.反射。在groovy. lang上调用(CachedWay. java: 93)。在org. codehaus. groovy. runtime. metaclass上调用(MetaWay. java: 325)。在groovy. lang的ClosureMetaClass. invkemethod(ClosureMetaClass. java: 294)。在groovy. lang的MetaClassInp. invkemethod(MetaClassInp. java: 1022)。在groovy. lang. call(Closu. java: 414)。在groovy. json.在groovy. json.jsonBuilder. call(JsonBuilder. java: 215)at groovy. json.jsonBuilder$call 1 USD. call(未知来源)at org. codehaus. groovy. runtime. call。defaultCall(CallSiteArray. java: 48)在org. codehaus. groovy. runtime.调用(AbstractCallSite. java: 113)在org. codehaus. groovy. runtime.在groovy. lang的Script1. run(Script1. groovy: 26)调用(AbstractCallSite. java: 125)。在groovyShell. lang评估(GroovyShell. java: 585)。在groovyShell. lang评估(GroovyShell. java: 623)。在org. jenkinsci. plugins. criptsecurity. sanbox. groovyShell.评估(GroovyShell. java: 594)。评估(SecureGroovyScript. java: 377)在org. jenkinsi. plugins. criptsecurity. sanbox. groovy。评估(SecureGroovyScript. java: 314)在hudson. plugins. groovy。运行(SystemGroovy. java: 95)在hudson. plugins. groovy。在hudson. tasks上执行(SystemGroovy. java: 59)。在hudson. Model上执行(BuildStepMonitor. java: 20)。AbstractBuild$AbstractBuildExect. show(AbstractBuild. java: 804)at hudson. Model.构建(Build. java: 197)在hudson. Model.在hudson. Model上构建$BuildExect. doRun(Build. java: 163)。AbstractBuild$AbstractBuildEx. run(AbstractBuild. java: 514)at hudson. Model.运行。执行(Run. java: 1907)在hudson. Model。FreeStyleBuild. run(FreeStyleBuild. java: 43)at hudson. model.执行(ResourceController. java: 97)在hudson. Model。Executor. run(Executor. java: 429)构建步骤执行系统Groovy脚本将构建标记为失败

共有1个答案

弘浩博
2023-03-14

我已经解决了它的实例变量名称应该是小写的,但它是大写的,如下所示。

Instance=env。获取('实例')

 类似资料:
  • npm错误!此运行的完整日志可以在:npm err!C:\users\ttopo\appdata\roaming\npm-cache_logs\2020-11-20t07_58_40_339z-debug.log` 0信息如果它以ok结束就可以工作1详细cli[1详细cli'c:\program Files\nodejs\node.exe',1详细cli'c:\program Files\node

  • 当我运行npm运行json: server时,我得到了这个错误。 npm错误!缺少脚本:json: 当我打开日志文件时,它是这样说的: 0信息,如果它以ok结束1详细cli['C:\Program Files\nodejs\node.exe',1详细cli'C:\用户\IanP\AppData\漫游\npm\node_modules\npm\bin\npm-cli.js',1详细cli'run',

  • 我试图在服务器端运行我的Angular应用程序,但我遇到了以下错误: npm错误!缺少脚本:Build:Universal

  • 尝试使用Visual Studio Code上的npm start命令运行节点应用程序时收到此错误。非常感谢任何帮助! 这是我包裹里的东西。json文件: 这是我运行代码时终端上的消息:

  • 我有以下(匿名)名为tomcat-autostart.service的systemd脚本,存储在“/usr/lib/systemd/system/tomcat-autostart.service”中 跑完之后 搜索此问题已确定第二个错误消息是其他错误消息的直接原因。因为它忽略了节头,所以它从不读取ExecStart和ExecStop声明。如果我能够解决第一个和第三个错误消息,我应该能够 我的脚本的

  • 我正在Liferay控制面板服务器管理脚本控制台中测试一个快速groovy脚本。我需要尝试一下,看看是否可以使用Liferay API以编程方式添加新用户。 我是groovy的新手,可能犯了一个新手错误。我不知道为什么会出错,我一直在努力寻找解决办法。 我正在tomcat上使用Liferay 6.2 EE sp7。 我的脚本代码是 我得到的错误是: groovy.lang.缺少方法异常:没有方法的