2011-12-22 27 views
3

Maven-antrun-plugin内でMULE_HOME環境変数が正しく設定されていないかどうかを確認してみようとしています。ここで私がこれまで持っているものです。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.getProperties()に対してSystem.getenv()を実行します。私の推測では、mavenは環境変数をシステムプロパティにマッピングしていないということです。これはAntがissetで期待しているものです。あなたのPOMでプロパティを作成してみてください:

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

その後、定義し、taskdefをライン後

<isset property="mulehome"/> 
+0

私の例では、システムプロパティではなくプロジェクトにmavenプロパティが作成されますが、antrunプラグインはすべてのmavenプロパティをAntプロジェクトにコピーしてから実行する必要があります。 – tdrury

0

を使用します。

<property environment="env"/> 

私のAntの記憶は少し錆びていますが、限り私が思い出したように、$ {env.FOO_BAR}変数を使用するには、最初にその変数を定義する必要がありました。私はこれが役立つことを願っています:)

関連する問題