2011-08-09 16 views
1

私は、アプリケーションのインストーラをビルドするために、install4jでmaven-antrun-pluginを使用しています。 javaが(システム)パスにない場合は動作しません。新しいJavaプロセスを実行してタスクを実行するので、環境変数を渡す方法が必要ですが、わかりません。antrunプラグインに新しい環境変数を渡すにはどうしたらいいですか?

Install4JはEXE4J_JAVA_HOMEを使用してJavaインストールを選択します。 antrun-plugin経由でantに渡したいと思います。私はそれをやっているいくつかのハックの方法を考えることができますが、私は見落としている簡単なものがなければならない。参考のために、ここで私のantrunの設定です:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-antrun-plugin</artifactId> 

    <executions> 
     <execution> 
      <phase>package</phase> 

      <goals> 
       <goal>run</goal> 
      </goals> 

      <configuration> 
       <target> 
        <!--suppress MavenModelInspection --> 
        <taskdef name="install4j" classname="com.install4j.Install4JTask" 
         classpath="${install4j.ant.path}"/> 

        <install4j projectfile="itma-assembly-client-swing.install4j" buildids="62"> 
         <variable name="verbose.version.number" value="${verbose-version-number}"/> 
         <variable name="media.file.prefix" value="${media-file-prefix}"/> 
         <variable name="main.class" value="${itma-client-swing-bootstrap-main-class}"/> 
        </install4j> 
       </target> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

答えて

1

興味深い質問...私はそれにいくつかの研究を行なったし、財産有望な最初の音でしたAntのための -taskを見つけたが、それは読み取り専用アクセスを可能に環境変数。 jgurucoderanchのこれらのソースは、がAntの内部から環境変数を渡す唯一の方法だと主張しています。 これは最善の方法ではないかもしれませんが、おそらくあなたはexecでコマンドラインから別名com.install4j.Install4JTaskを実行することができます - おそらくそれはあなたのハックな方法の1つです:-)

+0

execを使用することの提案は最高です私はこれまでにこれを考え出すことができたので、私はこの答えを受け入れました。 Gradleを使っても、私がこの作業を行う唯一の方法は、提供されたantタスクを無視し、コマンドを直接実行することでした。また、 'EXE4J_JAVA_HOME'と' INSTALL4J_JAVA_HOME_OVERRIDE'は、少なくとも私にとってInstall4j(4.2.8)の以前のバージョンでは動作します。 –

関連する問題