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>
使用exec的建議是最好的我曾經爲此提出過,所以我接受了這個答案。即使使用Gradle,我能夠完成這項工作的唯一方法是忽略提供的ant任務並直接執行命令。另外,'EXE4J_JAVA_HOME'和'INSTALL4J_JAVA_HOME_OVERRIDE'似乎只適用於早期版本的Install4j(4.2.8)的linux,至少對我而言。 –