1

maven-antrun-pluginとinstall4jを使用して、アプリケーションのインストーラーをビルドしています。javaが(システム)パス上にない場合は機能しません。タスクを実行するために新しいJavaプロセスをフォークしているので、環境変数を渡す方法が必要ですが、理解できません。

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> 
4

1 に答える 1

1

興味深い質問...私はそれについていくつかの調査を行い、最初に有望に聞こえたが、環境変数への読み取りアクセスのみを許可するプロパティ-TaskforAntを見つけました。jgurucoderanchに関するこれらの情報源は、Ant内から環境変数を渡す唯一の方法です。これは最も良い方法ではありませんが、コマンドラインからexecを介してcom.install4j.Install4JTaskを実行できる可能性があります-おそらくそれはあなたのハックな方法の1つです... :-)

于 2012-01-12T13:45:47.930 に答える