web-dev-qa-db-fra.com

Erreur de compilation Maven

Lorsque je construis et exécute mon programme dans Netbeans, cela fonctionne sans problème. Mais avec le même fichier pom.xml lorsque j'essaie "Compiler le MVN", j'obtiens cette erreur:

[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project hadoop-test: Compilation failure
[ERROR] /home/metin/NetBeansProjects/hadoop-test/src/main/Java/com/citusdata/hadoop/HadoopTest.Java:[53,8] error: generics are not supported in -source 1.3

Ma version Java n'est pas la 1.3, voici le résultat de "mvn -version"

Apache Maven 3.0.4
Maven home: /usr/share/maven
Java version: 1.7.0_03, vendor: Oracle Corporation
Java home: /usr/lib/jvm/Java-7-openjdk-AMD64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.2.0-27-generic", Arch: "AMD64", family: "unix"

et c'est la ligne 53:

Token<BlockTokenIdentifier> token = locatedBlock.getBlockToken();
12
metdos

Le problème est que maven-compiler-plugin dans Maven2 utilise par défaut -source 1.3 et target 1.3

Vous pouvez le réparer en ajoutant ceci à votre pom:

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

Il est pratique de mettre cela dans la section pluginManagement de votre pom parent le plus élevé afin que vos poms dérivés n'aient pas à s'en soucier.

21
Petr Kozelka

Vous devez ajouter des informations dans votre pom.xml. Quelque chose comme ca: 

   <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>
5
Agemen

Dans votre journal, je vois cette ligne:

generics are not supported in -source 1.3

Vérifiez la configuration source et cible du plug-in maven-compiler et mettez-la à jour vers la version 1.5.

1
Thinhbk

Il semble que la version de votre plugin Maven Compiler soit la 1.3.

Consultez ce lien pour forcer le compilateur à fonctionner avec JDK 1.7, http://maven.Apache.org/plugins/maven-compiler-plugin/examples/compile-using-different-jdk.html

0
Arham

Veuillez exécuter Maven Exécuter à partir d’Eclipse, puis exécutez mvn test à partir de la commande Invite. Dans mon cas, tous les problèmes résolus avec cette étape. 

0
MukeshPandey

Il semble que votre maven Java home pointe vers un jre not jdk

Java home: /usr/lib/jvm/Java-7-openjdk-AMD64/jre

Vous devez le changer en un jdk.

Essayez Java -version et voyez ce qu'il y a

utilisez /usr/sbin/alternatives --config Java pour changer votre version de Java.

0
Suranga

Voici une manière légèrement différente de corriger la même erreur dans Eclipse Indigo.

  • Ouvrez votre projet (maven) dans Eclipse.
  • clic droit sur pom.xml
  • sélectionnez ... Maven ... Add Plugin
  • Entrer:

      - groupId: org.Apache.maven.plugins
      - artifactId: maven-compiler-plugin
      - version: 2.3.2
    

Cela va insérer une nouvelle section dans votre pom.xml et ouvrir une fenêtre pour l'édition.

Ensuite, vous pouvez ajouter les éléments XML source et cible comme décrit ci-dessus pour sélectionner le bon JRE.

La section ressemble à ceci dans mon projet:

<build>
  <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>
</build>

Notez les balises supplémentaires pour "construire" et "plugins" absents dans certains des autres postes.

Une fois le fichier sauvegardé, Eclipse vous informera que votre pom n'est pas synchronisé avec votre projet. 

Vous pouvez ensuite faire un clic droit sur le projet ... choisissez le projet Maven..update

Un élément clé pour moi a été que Maven redéfinira automatiquement le chemin de génération dans Eclipse. Que vous pouvez vérifier par Projet ... chemin de construction..configurez le chemin de construction ... Bibliothèques.

Cela signifie donc que vous ne devriez pas avoir à vous préoccuper de la configuration directe du chemin de génération dans Eclipse si vous utilisez un projet Maven.

HTH

0
windsor