Как я могу передать плагину antrun новую переменную окружения? - PullRequest
1 голос
/ 09 августа 2011

Я использую maven-antrun-plugin с install4j для сборки установщиков для моего приложения.Это не работает, если Java не находится на (системном) пути.Так как он запускает новый процесс Java для запуска задачи, должен быть способ передать переменные окружения, но я не могу понять это.

Install4J будет использовать EXE4J_JAVA_HOME для выбора установки Java,Я хочу передать это муравью через плагин antrun.Я могу придумать несколько хакерских способов сделать это, но должно быть что-то простое, что я пропускаю.Для справки, вот моя конфигурация 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 Ответ

1 голос
/ 12 января 2012

Интересный вопрос ... Я провел некоторое исследование по этому вопросу и обнаружил свойство -Task для Ant, которое сначала звучало многообещающе, но допускает только чтение для переменных среды.Эти источники в jguru и coderanch утверждают, что является единственным способом передачи переменных среды изнутри Ant.Это не самый лучший способ, но, возможно, вы можете запустить com.install4j.Install4JTask из командной строки, иначе через exec - возможно, это один из ваших хакерских способов ...: -)

...