2011-09-29 4 views
30

He importado un proyecto Maven existente en Eclipse IDE. he modificado un poco de código en él, compilado con éxito, estoy usando Java 1.6 como compilador y cuando estoy tratando de ejecutar experta instalación limpia -XMaven: error: los genéricos no son compatibles en -source 1.3, estoy usando 1.6

Su dando el siguiente error

No se pudo analizar mensaje de error: (use -source 5 o superior para habilitar genéricos) D: \ bayer \ util \ src \ main \ java \ comta \ tata \ bayer \ util \ BrokerageCalendar.java: 179: error: genéricos no son compatibles en - fuente 1.3

private static Hashtable<String, Boolean> nyseHolidays = new Hashtable<String, Boolean>(); 
         ^

could not parse error message: (use -source 5 or higher to enable generics) 
D:\bayer\util\src\main\java\com\tata\bayer\util\APIHttpXmlClient.java:27: error: generics are not supported in -source 1.3 
         Class<? extends APIResponse> responseClass) { 
         ^

Por favor, sugiera cualquier idea sobre cómo reso ¿Esto?

+0

Qué versión de Maven estás usando y has configurado correctamente JAVA_HOME – khmarbaise

Respuesta

42

Did usted declara que desea utilizar Java 1.6 en su pom.xml proyecto ?:

<build> 
     <pluginManagement> 
      <plugins> 
       <plugin> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <version>2.3.2</version> 
        <configuration> 
         <source>1.6</source> 
         <target>1.6</target> 
         <compilerArgument></compilerArgument> 
        </configuration> 
       </plugin> 
      </plugins> 
     </pluginManagement> 
    </build> 
+0

No es el nombre final. – khmarbaise

+0

@AndreiBodnarescu para usted. El nombre final es irrelevante para este problema. –

+1

que hicimos de esta manera, 1,6 org.apache.maven.plugins experto compilador-plugin 1,6 1,6 1,6 1.6 Estamos utilizando Java 1.7 y experto como Apache Maven 2.2.1 (r801777; 2009-08-07 00: 46: 01 + 0530) inicio de Java: c: \ Softwares \ Java \ jdk1.7.0 \ jre –

5

Usted tiene que configurar el compilador Maven Plugin.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.3</version> 
    <configuration> 
    <source>1.6</source> 
    <target>1.6</target> 
    </configuration> 
</plugin> 
+0

, vale la pena señalar que el valor predeterminado es 1.5 para el complemento del compilador> = 2.3. Maven 2.2.1 se configura por defecto en el plugin 2.0.2 del compilador, pero puede anularlo como se describe. –

+2

(por cierto, hay un error tipográfico en la versión del ejemplo, pero no se pueden realizar ediciones de 1 carácter en stackoverflow :) –

26

La configuración del complemento Maven Compiler solucionará el problema. Resulta que el problema fue causado por el paquete Maven3 en el repositorio de Ubuntu. Una solución alternativa es descargar Maven 3 del sitio web Apache, que utiliza un plugin Compiler más actualizado.

Quería saber por qué sucedía esto cuando la documentación indica que la fuente Java predeterminada es 1.5. Para ver lo que mvn está utilizando para su uso plug-in compilador:

mvn help:effective-pom 

Mi Maven plugin del compilador era 2.0.2 a pesar de que yo estaba usando Maven 3.0.4 a partir de los paquetes de Ubuntu. Cuando ejecuto el mismo comando usando Maven 3.0.4 de Apache, tengo un plugin versión 2.3.2, que por defecto es Java 1.5 como se esperaba.

+6

+1 para la respuesta de Ubuntu – yochannah

+0

Este también fue el problema para mí al usar el paquete Maven suministrado desde Ubuntu. Instalando desde Apache como se sugirió y el problema fue resuelto. –

1

prefiero esto:

<properties> 
    <maven.compiler.source>1.5</maven.compiler.source> 
    <maven.compiler.target>1.5</maven.compiler.target> 
    ... 
3

Otra forma que no implique la modificación del POM es especificar el origen y el destino de la línea de comandos:

Tenga en cuenta que esto debería se debe evitar en general, ya que no se puede garantizar que la construcción sea repetible de esta manera.

Cuestiones relacionadas