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 № 1Wynika 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()