2011-01-10 19 views
5

Estoy tratando de hacer que Maven invoque una compilación ANT para algún código heredado. La construcción ant construye correctamente a través de hormiga. Sin embargo, cuando la llamo usando el plugin de maven hormiga, se produce un error con el siguiente error: existeMaven Ant BuildException con maven-antrun-plugin ... no se puede encontrar el compilador javac

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.6:run  (default) on project CoreServices: An Ant BuildException has occured: The following error occurred while executing this line: 
[ERROR] C:\dev\projects\build\build.xml:158: The following error occurred while executing this line: 
[ERROR] C:\dev\projects\build\build.xml:62: The following error occurred while executing this line: 
[ERROR] C:\dev\projects\build\build.xml:33: The following error occurred while executing this line: 
[ERROR] C:\dev\projects\ods\build.xml:41: Unable to find a javac compiler; 
[ERROR] com.sun.tools.javac.Main is not on the classpath. 
[ERROR] Perhaps JAVA_HOME does not point to the JDK. 
[ERROR] It is currently set to "C:\bea\jdk150_11\jre" 

Mi javac en C: \ bea \ jdk150_11 \ bin y esto funciona para todas las demás cosas. No estoy seguro de dónde obtendrá Maven esta versión de JAVA_HOME. JAVA_HOME en variables de entorno de Windows se establece en C: \ bea \ jdk150_11 \ como debería ser.

El código de Maven que estoy usando para llamar al build.xml es

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

    <executions> 
      <execution> 
      <phase>install</phase> 
      <configuration> 

       <target> 
    <ant antfile="../build/build.xml" target="deliver" > 
    </ant> 
       </target> 
      </configuration> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      </execution> 
     </executions> 
    </plugin> 
    </plugins> 
    </build> 

Respuesta

15

Lo primero: ¿Por qué se ejecuta el script ANT install fase y no en compile?

Lo segundo: su problema puede deberse al hecho de que Maven ejecuta JRE en lugar de JDK, a pesar de que su JAVA_HOME apunta a JDK. Para arreglar esto, vea que tiene que ajustar manualmente las dependencias para maven-antrun-plugin. Esto es solo un ejemplo:

<plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.6</version> 
    <dependencies> 
     <dependency> 
      <groupId>com.sun</groupId> 
      <artifactId>tools</artifactId> 
      <version>1.5.0</version> 
      <scope>system</scope> 
      <systemPath>${java.home}/../lib/tools.jar</systemPath> 
     </dependency> 
    </dependencies> 
    <executions> 
     <execution> 
      <phase>compile</phase> 
      <configuration><target><ant/></target></configuration> 
      <goals><goal>run</goal></goals> 
     </execution> 
    </executions> 
</plugin> 
+4

El vínculo de reparación está roto. Supongo que es por eso que recomiendan poner los detalles en la respuesta, así como el enlace. – wrgrs

+2

@Lukasz - o necesita corregir esta respuesta o eliminarla, es una respuesta bastante inútil con solo un enlace muerto ahora. –

+1

@JarrodRoberson Gracias por señalar eso. Pegué la configuración de muestra para el complemento. – Lukasz

Cuestiones relacionadas