Saltar al contenido

La versión de Java cambia automáticamente a Java 1.5 después de la actualización de Maven

Solución:

Abre tu pom.xml archivo y agregue las siguientes líneas en él:

<properties>
   <maven.compiler.source>1.8</maven.compiler.source>
   <maven.compiler.target>1.8</maven.compiler.target>
</properties>

Dónde 1.8 es la versión java de su JDK / JRE actual. Otra forma de hacer esto es agregar un <build> con el maven-compile-plugin como

<build>
<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.2</version> <!-- or whatever current version -->
    <configuration>
      <source>1.8</source>
      <target>1.8</target>
    </configuration>
  </plugin>
</plugins>
</build>

EDITAR

Si está buscando una manera de hacerlo funcionar con las versiones 9+ de Java, eche un vistazo a @ JDelorean’s respuesta aquí abajo y no olvides darle un voto positivo también 🙂

Tuve el mismo problema cuando instalé Java 9. Mi proyecto usaría por defecto el entorno de ejecución J2SE-1.5. Curiosamente, no se hace referencia al nivel de cumplimiento de Java 9 como las versiones anteriores, es decir, “1.8”, sino como “9”. Así que tuve que proporcionar mis propiedades y la configuración del complemento del compilador Maven en consecuencia:

<properties>
    <maven.compiler.source>9</maven.compiler.source>
    <maven.compiler.target>9</maven.compiler.target>
</properties>

y

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>9</source>
        <target>9</target>
    </configuration>
</plugin>

Esto parece haber resuelto el problema. Funciona para las versiones 9 y superiores.

La causa principal de este problema es que si por alguna razon Eclipse no puede resolver un válido valor para el maven.compiler.source propiedad al generar / actualizar el archivo .classpath desde el pom, simplemente usará por defecto org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5.

Como respondió de manera experta @ jorge-campos, hay varias formas de establecer esa propiedad.

Sin embargo, la respuesta de Jorge no aparecer a trabajar para mi. Aquí estaban mis configuraciones:

<properties>
    <javaVersion>1.8</javaVersion>
    <maven.compiler.source>${java.version}</maven.compiler.source>
    <maven.compiler.target>${java.version}</maven.compiler.target>
</properties>

Exactamente. ${java.version} es Nunca se va a resolver a la propiedad (completamente diferente) javaVersion y Eclipse ignoró la propiedad y usó la predeterminada.

Lo que me devuelve al “por alguna razon“La parte con la que comencé; la estupidez del desarrollador puede ser una de esas razones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *