2011-08-09 4 views
1

저는 install4j와 함께 maven-antrun-plugin을 사용하여 응용 프로그램의 설치 프로그램을 빌드하고 있습니다. java가 (시스템) 경로에 없으면 작동하지 않습니다. 새 Java 프로세스를 실행하여 작업을 수행하기 때문에 환경 변수를 전달할 수있는 방법이 있어야하지만이를 이해할 수는 없습니다.antrun 플러그인에 새로운 환경 변수를 전달하려면 어떻게해야합니까?

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

흥미로운 질문 ... 나는 거기에 몇 가지 연구를하고 부동산 유망 처음 소리를 한 개미에 대한 -task을 발견하지만 읽기 전용 액세스를 허용에 환경 변수. jgurucoderanch에있는 이들 소스는 이 Ant 내부에서 환경 변수를 전달하는 유일한 방법이라고 주장합니다. 가장 좋은 방법은 아니지만 아마도 exec를 통해 명령 줄에서 com.install4j.Install4JTask를 실행할 수 있습니다. 아마도 여러분의 해킹 방법 중 하나 일 것입니다. :-)

+0

exec를 사용하는 것이 좋습니다. 나는이 문제를 해결할 수 있었다. 그래서 나는이 대답을 받아 들였다. Gradle을 사용해도이 작업을 수행 할 수 있었던 유일한 방법은 제공된 ant 작업을 무시하고 명령을 직접 실행하는 것이 었습니다. 또한,'EXE4J_JAVA_HOME'과'INSTALL4J_JAVA_HOME_OVERRIDE'는 최소한 Install4j (4.2.8)의 이전 버전을 가진 리눅스에서만 동작합니다. –

관련 문제