tengo - ¿Cómo averiguo y cambio qué versión de Java Maven está utilizando para ejecutar?
verificar java (4)
Mira aquí: http://www.MacAdie.net/2011/07/10/adding-some-xml-to-netbeans-pom-files/
Cuando ejecutamos nuestra compilación Maven, un miembro de mi equipo recibe this error al ejecutar. Sin embargo, cuando ejecutamos java -version
desde su línea de comando, indica Java 1.6.0_26. El error obviamente parece estar gritando que Maven está usando Java 5.
¿Cómo averiguo y cambio qué versión de Java está utilizando Maven?
3 notas potencialmente importantes:
- Esto se ejecuta en la línea de comando, sin usar el plugin de Eclipse
- JAVA_HOME está configurado en Java 1.6 JDK
- Usando Maven 2.2.1
Tendrá que configurar maven-compiler-plugin
para usar 1.6 parámetros source
y target
(de manera predeterminada es 1.5).
Este es el mejor hecho en el pom padre de su proyecto en la sección <pluginManagment>
(pero siempre puede configurarlo por proyectos individuales, por supuesto).
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
mvn -version
generará el java que está usando. Si JAVA_HOME está establecido en un directorio JDK válido y Maven está utilizando algo más, entonces lo más probable es que alguien haya manipulado la forma en que Maven se inicia.
mvn -version
te dice qué compilador usa Maven, por lo que responde a la pregunta a menos que tu POM especifique los valores de anulación para las versiones que se utilizarán.
Esta es la forma más fácil de especificar las anulaciones en pom.xml
:
<properties>
<maven.compiler.target>1.9</maven.compiler.target>
<maven.compiler.source>1.9</maven.compiler.source>
</properties>
Alternativamente, el maven-compiler-plugin
se puede especificar más explícitamente. En ese caso, observe los valores <source>
y <target>
asociados con el complemento.
Ambas opciones se describen here .
Si su POM tiene un <parent>
, entonces necesita verificar eso también (recursivamente).
Nota: Cuando se especifican el source
y el target
, estos valores se pasan como opciones de línea de comando al compilador. Usando esta característica, puede compilar o ejecutar contra versiones anteriores de Java que el valor nominal del compilador.