Je gère de nombreux emplois dans Jenkins par le plugin DSL. Ce plugin utilise des définitions .groovy, donc je pense que même si quelqu'un n'utilise pas Jenkins mais l'utilisation de groovy peut être utile.
En général, je veux créer un fichier supplémentaire, qui peut être un fichier groovy, JSON ou YAML, peu importe. Il est important de pouvoir connecter ce fichier à mon fichier .groovy.
Dans ce fichier, je définis des variables (plutôt que des chaînes), par exemple l'adresse IP ou d'autres choses, par exemple.
ip_gitlab: 1.2.3.4
default_user: admin
Dans mes fichiers groovy, je veux pouvoir utiliser ces variables.
Cette approche est possible dans groovy?
class GLOBAL{ def a=111; def b=222; }
. alors dans le code, vous devriez pouvoir y accéderGLOBAL.a
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'org.codehaus.groovy.runtime.InvokerHelper$1@641eff69' with class 'org.codehaus.groovy.runtime.InvokerHelper$1' to class 'javaposse.jobdsl.dsl.JobParent'
cette erreur se produit lors du traitement de votre classe GLOBALstatic
préfixe.class GLOBAL{ static def a=111; static def b=222; }
. mais l'erreur que vous avez est étrange. pourriez-vous montrer la variable que vous avez déclarée et comment vous l'utilisez en dsl.Réponses:
Je suggère d'utiliser un fichier de propriétés comme l'a écrit @JBaruch
Et chargez-le
Ensuite, vous pouvez l'utiliser, obtenez ip par exemple:
la source
FATAL: test.properties (No such file or directory) java.io.FileNotFoundException: test.properties (No such file or directory)
readFile
jenkins.io/doc/pipeline/steps/workflow-basic-stepsFaire un fichier groovy et définir quelques informations générales et utilisation
load
.Par exemple, hello.conf (écrit par groovy)
Et l'utiliser par
load
la source
ERROR: (pipeline.groovy, line 1) No signature of method: pipeline.load() is applicable for argument types: (java.lang.String) values: [a_test.groovy]Possible solutions: job(java.lang.String), find(), folder(java.lang.String), job(java.lang.String, groovy.lang.Closure), find(groovy.lang.Closure), wait()
si vous voulez une réponse spécifique à Jenkins: il existe un plugin de fournisseur de fichiers de configuration pour jenkins.
Vous pouvez stocker des fichiers de configuration / propriétés via des fichiers gérés. Accédez à Gérer Jenkins> Fichiers gérés et créez un nouveau fichier. Il prend en charge .groovy, .json, .xml et bien d'autres.
Une fois que vous avez cela, vous pouvez charger ledit fichier dans un travail en utilisant la case à cocher Fournir un fichier de configuration qui chargera automatiquement le fichier dans une variable env.
la source