2011-08-18 8 views
0
I want to define property or want to use maven.plugin.classpath and maven.dependency.classpath in my build.xml. 

How can i do it ? 

Sample code is as below... 

<property> </property> is not working and not able to read the values from my build.xml so please explain me how can i do it ? 


      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>exec-maven-plugin</artifactId> 
       <version>1.2</version> 
       <executions> 
        <execution> 
         <id>install</id> 
         <phase>install</phase> 
         <goals> 
          <goal>exec</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <property name="plugin_classpath" refid="maven.plugin.classpath" /> 
        <property name="maven_dependency_classpath" refid="maven.dependency.classpath" />    
        <executable>antscript.bat</executable> <!-- ant -f build.xml build --> 
       </configuration> 
      </plugin> 



Hi Sean Patrick Floyd, 


Yes i tried using maven-antrun-plugin but i am not able to setup JDK 1.4.2 version in it. I am trying to specify all possible way to apply JDK version 1.4.2 but it's still taking tools.jar or JDK version, Which maven.bat file is using (jdk 1.5) 

I was using following code in MAVEN-ANTRUN-PLUGIN as below code. 

<plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-antrun-plugin</artifactId> 
       <version>1.6</version> 

       <executions> 
        <execution> 
         <id>install</id> 
         <phase>install</phase> 
         <goals> 
          <goal>run</goal> 
         </goals> 
         <configuration> 
          <source>${java-version}</source> 
          <target>${java-version}</target> 
          <compilerVersion>${java-version}</compilerVersion> 
          <executable>${java.1.4.2.home}/bin/javac</executable> 
          <target> 

           <property name="plugin_classpath" refid="maven.plugin.classpath" /> 
           <property name="maven_dependency_classpath" refid="maven.dependency.classpath" /> 
           <ant antfile="ant_build.xml" /> 
          </target> 
         </configuration> 
        </execution> 
       </executions> 
       <dependencies> 
        <dependency> 
         <groupId>sun.jdk</groupId> 
         <artifactId>tools</artifactId> 
         <version>1.4.2</version> 
         <scope>system</scope> 
         <systemPath>${java.1.4.2.home}/lib/tools.jar</systemPath> 
        </dependency> 
        <dependency> 
         <groupId>com.sun</groupId> 
         <artifactId>rt</artifactId> 
         <version>${java-version}</version> 
         <scope>system</scope> 
         <systemPath>${java.1.4.2.home}/jre/lib/rt.jar</systemPath> 
        </dependency> 
       </dependencies> 
      </plugin> 



That's why i choose exec GOAL where my SYSTEM JAVA_HOME is 1.4.2 and it's able to execute it if i have all dependencies which i needed. 


Please help me out. 






Thanks. 

답변

1

maven.plugin.classpath 등 내 EXEC 목표에 변수로 maven.dependency.classpath을 통과에만 maven-antrun-plugin에 정의 된 변수 싶다. exec 플러그인은 이러한 값을 알지 못합니다. 또한 외부의 .bat 파일을 호출하여 새로운 프로세스를 시작하는 것처럼 처음부터 그렇게 할 수는 없습니다.

내가 당신이라면 antrun 플러그인을 사용합니다. 자세한 내용은 the usage page을 참조하십시오.


업데이트 : 좋아, 지금은 문제를 참조하십시오. antrun은 동일한 VM 내에서 작동하므로 다른 JDK를 사용할 수 없습니다. 따라서 JDK 사용을 전환해야하거나 실제로 exec-maven-plugin을 사용해야합니다. 후자의 경우,
dependency:build-classpath -DoutputFile=someFile.txt
을 사용하고 개미면에서는 someFile.txt의 내용을 속성으로 읽고 그로부터 클래스 경로를 생성해야합니다. 또는 명령 줄 args에 use the %classpath variable placeholder을 사용할 수 있습니다.

+0

안녕하세요 Sean Patrick Floyd - 내 수정 된 질문을 확인하십시오. – user886614

+0

@ user886614 Java 환경이 필요한 Ant 작업을 호출하기 위해 maven-antrun-plugin을 사용할 수 있습니까? antrun 플러그인에서 사용할 수있는 maven 클래스 경로 등록 정보를 사용하여 작업에 종속 jar 위치를 제공 할 수 있습니다. –

0

예 정답은 JDK 1.4.2를 지원하는 MAVEN 버전을 사용하는 것입니다. 그래서 JDK 1.4.2를 지원하는 apache-maven-2.0.11을 사용해야합니다.

답장을 보내 주셔서 감사합니다.