J'utilise maven-antrun-plugin avec install4j pour créer des programmes d'installation pour mon application. Cela ne fonctionne pas si java n'est pas sur le chemin (système). Comme il faut forcer un nouveau processus Java pour exécuter la tâche, il doit y avoir un moyen de lui passer les variables d'environnement, mais je ne peux pas le comprendre.Comment passer le plugin antrun à une nouvelle variable d'environnement?
Install4J utilisera EXE4J_JAVA_HOME
pour sélectionner une installation java. Je veux passer ça à Ant via le plugin antrun. Je peux penser à quelques façons hackish de le faire, mais il doit y avoir quelque chose de simple que je néglige. Pour référence, voici ma config 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>
La suggestion d'utiliser exec est la meilleure J'ai toujours été capable de le faire, j'ai donc accepté cette réponse. Même avec Gradle, la seule façon de faire ce travail était d'ignorer les tâches fourmi fournies et d'exécuter les commandes directement. En outre, 'EXE4J_JAVA_HOME' et' INSTALL4J_JAVA_HOME_OVERRIDE' ne semblent fonctionner que sous linux avec les versions antérieures de Install4j (4.2.8), au moins pour moi. –