2011-12-22 1 views
3

J'essaie de vérifier si la variable d'environnement MULE_HOME est définie dans le plugin maven-antrun sans succès. Voici ce que j'ai jusqu'à présent:Vérification d'une variable d'environnement à l'aide du plugin Maven AntRun

<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <version>1.7</version> 
      <executions> 
       <execution> 
        <id>mule-deploy</id> 
        <phase>install</phase> 
        <goals> 
         <goal>run</goal> 
        </goals> 
        <configuration> 
         <target> 
          <taskdef resource="net/sf/antcontrib/antcontrib.properties" 
            classpath="${settings.localRepository}/ant-contrib/ant-contrib/1.0b3/ant-contrib-1.0b3.jar"/> 
          <echo message="MULE_HOME is ${env.MULE_HOME}"/> 
          <if> 
           <isset property="env.MULE_HOME"/> 
           <then> 
            <echo message="MULE_HOME is set"/> 
           </then> 
           <else> 
            <echo message="MULE_HOME is not set"/> 
           </else> 
          </if> 
         </target> 
        </configuration> 
       </execution> 
      </executions> 
</plugin> 

La sortie est:

[echo] MULE_HOME is /<my development path>/mule 
[echo] MULE_HOME is not set 

Qu'est-ce que je manque pour vérifier une variable d'environnement?

Répondre

3

Java stocke les variables d'environnement différemment des propriétés du système; System.getenv() et System.getProperties(). Je suppose que maven ne mappe pas les variables d'environnement dans les propriétés du système, ce que Ant attend avec isset. Essayez de créer une propriété dans votre POM:

<properties> 
    <mulehome>${env.MULE_HOME}</mulehome> 
<properties> 

puis utilisez

<isset property="mulehome"/> 
+0

Une clarification: mon exemple créera une propriété maven dans le projet, pas une propriété système, mais le plugin antrun copie toutes les propriétés maven dans le projet Ant avant de s'exécuter, donc cela devrait fonctionner. – tdrury

0

Après la ligne taskdef, définissez un:

<property environment="env"/> 

Mes Ant souvenirs sont un peu rouillé, mais aussi loin si je me souviens bien, il fallait d'abord définir cela avant de pouvoir utiliser les variables $ {env.FOO_BAR}. J'espère que ça aide. :)

Questions connexes