2011-12-22 2 views
3

Я пытаюсь проверить и проверить, не изменена ли переменная среды MULE_HOME в maven-antrun-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> 

Выход:

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

Что мне не хватает, чтобы проверить переменную окружения?

ответ

3

Java хранит переменные среды, отличные от свойств системы; System.getenv() и System.getProperties(). Я предполагаю, что maven не отображает переменные среды в свойства системы, что и ожидает Ant с isset. Попробуйте создать свойство в вашем POM:

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

затем использовать

<isset property="mulehome"/> 
+0

Одно пояснение: мой пример создаст свойство maven в проекте, а не системное свойство, но плагин antrun копирует все свойства maven в проект Ant перед запуском, поэтому он должен работать. – tdrury

0

После taskdef линии, определим:

<property environment="env"/> 

Мои Ant воспоминания немного ржавый, но, насколько как я помню, вам нужно было определить это сначала, прежде чем использовать переменные $ {env.FOO_BAR}. Надеюсь, это поможет. :)

Смежные вопросы