/ / Skrypt potoku Jenkins kończy się niepowodzeniem z komunikatem „Błąd ogólny podczas generowania klasy: kod metody jest zbyt duży!” - jenkins, jenkins-pipeline

Skrypt rurociągu Jenkins kończy się niepowodzeniem z "Ogólny błąd podczas generowania klasy: Kod metody zbyt duży!" - jenkins, jenkins-pipeline

Podczas uruchamiania dużego skryptu potoku Jenkins może powodować błąd:

org.codehaus.groovy.control.MultipleCompilationErrorsException: uruchomienie nie powiodło się: Ogólny błąd podczas generowania klasy: Kod metody za duży!

java.lang.RuntimeException: Kod metody jest zbyt duży!

Jaki jest powód tego błędu i jak można go naprawić?

Odpowiedzi:

2 dla odpowiedzi № 1

Wynika to z ograniczenia między Javą a Groovy, który wymaga, aby kod bajtowy metody nie był większy niż 64 kb. Nie wynika to z DSL Jenkins Pipeline.

Aby rozwiązać ten problem, zamiast używać pojedynczego skryptu monolitycznego potoku, podziel go na metody i wywołaj metody.

Na przykład zamiast mieć:

stage foo
parallel([
... giant list of maps ...
])

Zamiast tego:

stage foo
def build_foo() {
parallel([
...giant list of maps...
])}
build_foo()