我正在尝试检查是否在maven-antrun-plugin中设置了MULE_HOME环境变量但没有成功。这是我到目前为止所做的:
<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
检查环境变量我缺少什么?
答案 0 :(得分:3)
Java存储环境变量与系统属性不同; System.getenv()与System.getProperties()。我的猜测是,maven没有将环境变量映射到系统属性,这是Ant期望的设置。尝试在POM中创建一个属性:
<properties>
<mulehome>${env.MULE_HOME}</mulehome>
<properties>
然后使用
<isset property="mulehome"/>
答案 1 :(得分:0)
在taskdef行之后,定义一个:
<property environment="env"/>
我的Ant记忆有点生疏,但据我记忆,你需要先定义它才能使用$ {env.FOO_BAR}变量。我希望这有帮助。 :)