Groovy-script dans la sortie jenkins println disparaît lorsqu'il est appelé dans l'environnement de classe
La sortie de la println à partir de l'intérieur d'une fonction de classe est perdu.
Un exemple de script (outputclass.groovy):
class OutputClass
{
OutputClass()
{
println("Inside class") //This will not show in the console
}
}
println("Outside class") //Only this is shown in the console
output = new OutputClass()
- Je utiliser Jenkins de la CLI pour exécuter le script groovy
java -jar ..\jenkins-cli.jar -s JENKINS_SERVER_URL groovy outputclass.groovy
Il ne renvoie ceci:
En dehors de la classe
Il semble que la classe inmplicitly utilise println à partir du Système..println, et du Système.est dirigé vers les fichiers journaux, mais la println en dehors de la classe est d'utiliser quelque chose d'autre, qui est retournée dans le script de la console. Le code suivant montre le comportement.
System.out.println("First")
println("Second")
De sortie:
Deuxième
Comment puis-je définir explicitement le périphérique de sortie à la sortie à l'Jenkins script console?
source d'informationauteur Magnus
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé la solution moi-même ici http://mriet.wordpress.com.
Lorsque le Groovy plugin commence est passe de deux liaisons pour le script. De les liaisons que nous pouvons obtenir les hors variable. Obtenir et utiliser .println à la sortie du script de la console, pas la plaine println.
Le script ci-dessous montre complète de la solution.
Si vous utilisez le skript après l'étape de génération (je ne suis pas shure de savoir si cela fonctionne avec le mentionné CLI), vous pouvez utiliser la mise en logger:
Si dans votre cas, quelque chose comme cela peut être utile:
Voir aussi À l'exemple 10 Groovy Plugin Doc
Cette liste de diffusion post aider?