해결 : S. Richmond의 답변에 감사드립니다 . 내가 설정 해제하는 데 필요한 모든 의 저장지도 groovy.json.internal.LazyMap
변수 무효 의미 유형 envServers
과 object
사용 후를.
추가 :이 오류를 검색하는 사람들은 readJSON
대신 Jenkins 파이프 라인 단계를 사용하는 데 관심이있을 수 있습니다 . 여기에서 자세한 정보를 찾으 십시오 .
Jenkins Pipeline을 사용하여 json 문자열로 작업에 전달되는 사용자로부터 입력을 받으려고합니다. 그런 다음 Pipeline은 slurper를 사용하여 이것을 구문 분석하고 중요한 정보를 선택합니다. 그런 다음 해당 정보를 사용하여 서로 다른 작업 매개 변수와 동시에 하나의 작업을 여러 번 실행합니다.
아래 코드를 추가 할 때까지 "## Error when below here is added"
스크립트가 정상적으로 실행됩니다. 그 지점 아래의 코드도 자체적으로 실행됩니다. 그러나 결합하면 아래 오류가 발생합니다.
트리거 된 작업이 호출되고 성공적으로 실행되지만 아래 오류가 발생하고 기본 작업이 실패합니다. 이 때문에 기본 작업은 트리거 된 작업의 반환을 기다리지 않습니다. 나는 시도 / 잡을 수build job:
있지만 주요 작업이 트리거 된 작업이 완료되기를 기다리기를 원합니다.
누구든지 여기서 도울 수 있습니까? 더 이상 정보가 필요하면 알려주세요.
건배
def slurpJSON() {
return new groovy.json.JsonSlurper().parseText(BUILD_CHOICES);
}
node {
stage 'Prepare';
echo 'Loading choices as build properties';
def object = slurpJSON();
def serverChoices = [];
def serverChoicesStr = '';
for (env in object) {
envName = env.name;
envServers = env.servers;
for (server in envServers) {
if (server.Select) {
serverChoicesStr += server.Server;
serverChoicesStr += ',';
}
}
}
serverChoicesStr = serverChoicesStr[0..-2];
println("Server choices: " + serverChoicesStr);
## Error when below here is added
stage 'Jobs'
build job: 'Dummy Start App', parameters: [[$class: 'StringParameterValue', name: 'SERVER_NAME', value: 'TestServer'], [$class: 'StringParameterValue', name: 'SERVER_DOMAIN', value: 'domain.uk'], [$class: 'StringParameterValue', name: 'APP', value: 'application1']]
}
오류:
java.io.NotSerializableException: groovy.json.internal.LazyMap
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:860)
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:569)
at org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMarshaller.java:65)
at org.jboss.marshalling.river.BlockMarshaller.writeObject(BlockMarshaller.java:56)
at org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride(MarshallerObjectOutputStream.java:50)
at org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride(RiverObjectOutputStream.java:179)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at java.util.LinkedHashMap.internalWriteEntries(Unknown Source)
at java.util.HashMap.writeObject(Unknown Source)
...
...
Caused by: an exception which occurred:
in field delegate
in field closures
in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@5288c