如何将antrun插件传递给新的环境变量?

时间:2011-08-09 12:06:59

标签: maven install4j maven-antrun-plugin

我正在使用带有install4j的maven-antrun-plugin为我的应用程序构建安装程序。如果java不在(系统)路径上,它不起作用。因为它要求一个新的java进程来运行任务,所以必须有一种方法可以传递它的环境变量,但是我无法理解它。

Install4J将使用EXE4J_JAVA_HOME来选择Java安装。我想通过antrun-plugin将它传递给ant。我可以想到一些做法的hackish方式,但是我必须要有一些简单的东西。作为参考,这是我的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 个答案:

答案 0 :(得分:1)

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

相关问题