1

我正在使用带有 install4j 的 maven-antrun-plugin 为我的应用程序构建安装程序。如果 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

有趣的问题...我对它进行了一些研究,并发现属性-Task for Ant 首先听起来很有希望,但它只允许对环境变量进行读取访问。这些关于jgurucoderanch的消息来源声称是从 Ant 内部传递环境变量的唯一方法。这不是最好的方法,但也许您可以通过 exec 从命令行执行 com.install4j.Install4JTask - 也许这是您的一种骇人听闻的方式... :-)

于 2012-01-12T13:45:47.930 回答