Проверка переменной среды с помощью плагина Maven AntRun - PullRequest
3 голосов
/ 23 декабря 2011

Я пытаюсь проверить, не установлена ​​ли переменная окружения MULE_HOME в maven-antrun-plugin, но безуспешно.Вот что у меня есть:

<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

Чего мне не хватает, чтобы проверить переменную среды?

Ответы [ 2 ]

3 голосов
/ 23 декабря 2011

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

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

затем используйте

<isset property="mulehome"/>
0 голосов
/ 23 декабря 2011

После строки taskdef определите:

<property environment="env"/>

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

...