Comment puis-je importer une classe Groovy dans un Jenkinfile?
Comment puis-je importer une Groovy de la classe dans une Jenkinsfile? J'ai essayé plusieurs solutions mais aucune n'a fonctionné.
C'est la classe je veux importer:
Chose.groovy
class Thing {
void doStuff() { ... }
}
Ce sont des choses qui ne fonctionnent pas:
Jenkinsfile-1
node {
load "./Thing.groovy"
def thing = new Thing()
}
Jenkinsfile-2
import Thing
node {
def thing = new Thing()
}
Jenkinsfile-3
node {
evaluate(new File("./Thing.groovy"))
def thing = new Thing()
}
Cela a fonctionné pour moi: stackoverflow.com/questions/37800195/...
OriginalL'auteur Leonhardt Koepsell | 2016-08-29
Vous devez vous connecter pour publier un commentaire.
Vous pouvez renvoyer une nouvelle instance de la classe via la commande charger et utiliser l'objet de l'appel "doStuff"
Vous avez cette "Chose.groovy"
Et vous avez ceci dans votre dsl script:
Qui devrait print "BONJOUR" à la sortie de la console.
Cela satisfera à vos exigences?
Je suis d'accord. Bonne réponse ici: stackoverflow.com/questions/43881014/...
Cela ne fonctionne pas si le fichier groovy vie avec votre Jenkinsfile. Dans le Jenkinsfile vous pouvez commander un repo manuellement et de la charge .groovy fichiers à partir de là. Dans ce cas, le fichier est trouvé, mais la suivante est générée: java.io.NotSerializableException: Chose
OriginalL'auteur Daniel Omoto
Ce qui est intéressant, de toute façon, vous pouvez avoir plusieurs constructeurs ?
Vous pouvez facilement si vous utilisez une bibliothèque partagée, mais dans ce cas, la classe est à l'extérieur d'une bibliothèque partagée
OriginalL'auteur Zangdar