Comment référencer la variable d’environnement dans POM.xml?

J’utilise maven comme outil de construction. J’ai défini une variable d’environnement appelée env . Comment puis-je accéder à la valeur de cette variable d’environnement dans le fichier pom.xml ?

Consultez le guide des propriétés Maven …

Comme Seshagiri l’a souligné dans les commentaires, ${env.VARIABLE_NAME} fera ce que vous voulez.

Je vais append un mot d’avertissement et dire qu’un pom.xml devrait décrire complètement votre projet, veuillez donc utiliser judicieusement les variables d’environnement. Si vous faites dépendre vos builds de votre environnement, ils sont plus difficiles à reproduire

Il peut être plus sûr de transmettre directement les variables d’environnement pour améliorer les propriétés du système. Par exemple, sur Linux, vous voulez accéder à la variable d’environnement MY_VARIABLE. Vous pouvez utiliser une propriété système dans votre fichier pom.

  ...  foo ...  ...  ... ${my.variable} ... 

Définissez la valeur de la propriété sur la ligne de commande maven:

 mvn clean package -Dmy.variable=$MY_VARIABLE 

De plus, assurez-vous que votre variable d’environnement est composée uniquement de lettres majuscules …. Je ne sais pas pourquoi (la documentation ne dit rien d’explicite, au moins le lien fourni par @Andrew White), mais si la variable est un mot minuscule (par exemple env.dummy), la variable est toujours vide ou null …

Je me suis débattu avec ça comme une heure, jusqu’à ce que je décide d’essayer une VARIABLE DE CAS SUPERIEURE et que le problème soit résolu.

OK Exemples de variables:

  • MANNEQUIN
  • DUMMY_ONE
  • JBOSS_SERVER_PATH

( NOTE : j’utilisais maven v3.0.5)

J’espère que cela peut aider quelqu’un ….

Ne pouvons-nous pas utiliser

  ${env.MY_VARIABLE}  

Je me débattais avec la même chose, exécuter un script shell qui définissait des variables, puis voulant utiliser les variables dans le partage de pom. L’objective était de faire en sorte que les variables d’environnement remplacent les chaînes dans mes fichiers de projet à l’aide du com.google.code.maven-replacer-plugin.

Utiliser ${env.foo} ou ${env.FOO} n’a pas fonctionné pour moi. Maven ne trouvait pas la variable. Ce qui a fonctionné était de passer la variable en tant que paramètre de ligne de commande dans Maven. Voici la configuration:

  1. Définissez la variable dans le script shell. Si vous lancez Maven dans un sous-script, assurez-vous que la variable est configurée, par exemple en utilisant source ./maven_script.sh pour l’appeler depuis le script parent.

  2. Dans shared-pom, créez un paramètre de ligne de commande qui récupère la variable d’environnement:

 
   ...
   
     
     ...
       
       ...
         
            $ {foo}  
         
  1. Dans com.google.code.maven-replacer-plugin, définissez la valeur de remplacement ${foo} .

  2. Dans mon script shell qui appelle maven, ajoutez ceci à la commande: -Dfoo=$foo