2009-07-28 12 views
6

Trabajo en un programa Java que debe ser compatible con Java 5. Tuve @Override anotaciones sobre los métodos de interfaz implementados, lo cual está permitido en Java 6, pero no en 5. Utilizo Java 6 SDK. Eclipse correctamente da mensajes de error en el @Override cuando lo configuro en 5.0. Mi Maven build, sin embargo, se ejecuta sin siquiera una advertencia, utilizando los siguientes ajustes en mi POM:¿Maven realmente honra la etiqueta <source> en el plugin del compilador?

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

Estoy en lo correcto al esperar que este hecho debe hacer que la construcción falle? ¿Por qué no, y hay algo que puedo hacer?

Respuesta

5

Esto es en realidad un problema de JDK, no un problema de Maven. La anotación @Override no está fallando con un indicador de fuente 1.5 a un 1.6 javac. Sigue adelante e inténtalo. La única forma de hacerlo fallar es, desafortunadamente, usar un 1.5 javac.

Lo sentimos, HTH.

EDITAR
me encontré con este problema a mí mismo, y también se preguntaban si en realidad está mirando el entorno en el POM. Al activar la salida de depuración (-X creo que fue hace un tiempo), imprimiré la línea de comando javac a la salida estándar, y verás que de hecho está usando el parámetro -source 1.5.

1

Como respuesta de roe dice que necesita usar un compilador 1.5 porque el JDK no está haciendo su trabajo correctamente. Vale la pena señalar que se puede evitar perder el tiempo con caminos etc. tweaking the maven-compiler-plugin por la configuración para utilizar un compilador específico:

<plugins> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <configuration> 
     <verbose>true</verbose> 
     <fork>true</fork> 
     <executable>${JAVA_1_5_HOME}/bin/javac</executable> 
     <compilerVersion>1.5</compilerVersion> 
    </configuration> 
    </plugin> 
    ... 
</plugins> 

Luego, puede especificar la ruta al compilador en su proyecto o settings.xml

<properties> 
    <JAVA_1_5_HOME>/path/to/1.5jdk</JAVA_1_5_HOME> 
</properties> 
+0

Buen punto, también. –

Cuestiones relacionadas