Ich richte einen neuen Build ein. Ausführen einer einfachen Shell-Befehl funktioniert perfekt, wie unten:Befehle schlagen fehl, wenn sie in die benutzerdefinierte Klasse in jenkinsfile verschoben werden
stage("Demo") {
sh "echo 'Hi There'"
}
ich Skripte in ihren eigenen Klassen zu „Paket“ meine Shell versucht haben, nur die Dinge ein wenig vernähen auf. Das Problem besteht darin, dass bei dem Versuch, den gleichen genauen Shell-Skript ausführt aus innerhalb einer Klasse, jenkins versagt die Builds mit:
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: nicht klassifiziert Methode java.lang.Class sh java.lang.String
Dies ist ein einfaches Beispiel, das nach dem Verschieben des obigen Verfahrens in eine eigene Klasse für mich nicht:
stage('Demo stage') {
Tools.PrintMe("Hi There")
}
public class Tools {
public static void PrintMe(String message) {
sh "echo " + message
}
}
Es gibt auch keine Möglichkeit, im Skript manag bereitgestellt Whitelist diese abgelehnte Methode.
Gibt es eine Möglichkeit, dies zu umgehen? Oder gibt es eine Einschränkung, die mir nicht bewusst ist?