簡體   English   中英

Jenkins Groovy 腳本 MissingPropertyException

[英]Jenkins Groovy Script MissingPropertyException

要創建以下形式的 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"
    }
}

groovy 腳本

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)

jenkins 錯誤狀態

ERROR: Build step failed with exception

groovy.lang.MissingPropertyException: No such property: instance for class: groovy.json.JsonDelegate at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:53) at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite .getProperty(PogoGetPropertySite.java:52) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:307) at Script1$_run_closure1.doCall(Script1.groovy:36) at Script1$_run_closure1.doCall( Script1.groovy) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(Un known Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325 ) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022) at groovy.lang.Closure.call(Closure.java: 414) at groovy.lang.Closure.call(Closure.java:408) at groovy.json.JsonDelegate.cloneDelegateAndGetContent(JsonDelegate.java:8 6) at groovy.json.JsonBuilder.call(JsonBuilder.java:215) at groovy.json.JsonBuilder$call$1.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java :48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) at Script1.run( Script1.groovy:26) at groovy.lang.GroovyShell.evaluate(GroovyShell.java:585) at groovy.lang.GroovyShell.evaluate(GroovyShell.java:623) at Z5F2 02E7AB75F00AF194C61CC07AE6B0CZ.lang.GroovyShell.evaluate(GroovyShell.java:594) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript.evaluate(SecureGroovyScript.java:377) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy. SecureGroovyScript.evaluate(SecureGroovyScript.java:314) at hudson.plugins.groovy.SystemGroovy.run(SystemGroovy.java:95) at hudson.plugins.groovy.SystemGroovy.perform(SystemGroovy.java:59) at hudson.tasks.BuildStepMonitor $1.perform(BuildStepMonitor.java:20) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:804) at hudson.model.Build$BuildExec ution.build(Build.java:197) at hudson.model.Build$BuildExecution.doRun(Build.java:163) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:514) at hudson.model.Run .execute(Run.java:1907) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:97) at hudson.model.Executor.run(Executor. java:429) 構建步驟“執行系統 Groovy 腳本”將構建標記為失敗

我已經解決了它的實例變量名稱應該是小寫的,但它是大寫的,如下所示。

實例= env.get('實例')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM