wake-up-neo.com

Maven-Kompilierungsfehler

Wenn ich mein Programm in Netbeans erstelle und ausführen, funktioniert es problemlos. Aber mit der gleichen pom.xml-Datei, wenn ich "mvn compile" versuche, erhalte ich diesen Fehler:

[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

Meine Java-Version ist nicht 1.3, hier das Ergebnis von "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"

und das ist die Linie 53:

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

Das Problem ist, dass maven-compiler-plugin in Maven2 standardmäßig -source 1.3 und target 1.3 verwendet.

Sie können das Problem beheben, indem Sie dies zu Ihrem Pom hinzufügen:

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

Es ist praktisch, dies in den pluginManagement-Abschnitt Ihres obersten übergeordneten Poms zu setzen, damit sich Ihre abgeleiteten Poms nicht darum kümmern müssen.

21
Petr Kozelka

Sie müssen einige Informationen in Ihre pom.xml einfügen. Sowas in der Art: 

   <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

In Ihrem Protokoll sehe ich diese Zeile:

generics are not supported in -source 1.3

Überprüfen Sie die Quell- und Zielkonfiguration des Maven-Compiler-Plug-Ins und aktualisieren Sie es auf 1.5.

1
Thinhbk

Es scheint, dass Ihre Version des Maven-Compiler-Plugins 1.3 ist.

Schauen Sie sich diesen Link an, um den Compiler zu zwingen, mit JDK 1.7, http://maven.Apache.org/plugins/maven-compiler-plugin/examples/compile-using-different-jdk.html

0
Arham

Bitte führen Sie Maven Run aus Eclipse aus und führen Sie dann mvn test über die Eingabeaufforderung aus. In meinem Fall wurden alle Probleme mit diesem Schritt gelöst. 

0
MukeshPandey

Es scheint, dass Ihr maven Java-Home-Point auf ein jre und kein jdk verweist

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

Sie müssen es in ein jdk ändern.

Versuchen Sie Java -version und sehen Sie, was da ist

verwenden Sie /usr/sbin/alternatives --config Java, um Ihre Java-Version zu ändern.

0
Suranga

Hier ist ein etwas anderer Weg, um den gleichen Fehler in Eclipse Indigo zu beheben.

  • Öffnen Sie Ihr (Maven-) Projekt in Eclipse.
  • klicken Sie mit der rechten Maustaste auf pom.xml
  • auswählen ... Maven ... Plugin hinzufügen
  • Eingeben:

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

Dies fügt einen neuen Abschnitt in Ihre pom.xml ein und öffnet ein Fenster zum Bearbeiten.

Dann können Sie die Quell- und Ziel-XML-Elemente wie oben beschrieben hinzufügen, um die richtige JRE auszuwählen.

Der Abschnitt sieht in meinem Projekt folgendermaßen aus:

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

Beachten Sie die zusätzlichen Tags für "build" und "plugins", die in einigen anderen Beiträgen fehlen.

Nachdem Sie die Datei gespeichert haben, werden Sie von Eclipse darüber informiert, dass Ihr Pom nicht mit Ihrem Projekt synchron ist. 

Sie können dann mit der rechten Maustaste auf das Projekt klicken ... Maven..update-Projekt auswählen

Eine der wichtigsten Erkenntnisse für mich war, dass Maven den Build-Pfad in Eclipse automatisch neu setzt. Was Sie mit Project überprüfen können ... build path..configure build path ... Bibliotheken.

Im Wesentlichen bedeutet dies, dass Sie sich nicht mit der direkten Konfiguration des Erstellungspfads in Eclipse beschäftigen müssen, wenn Sie ein Maven-Projekt verwenden.

HTH

0
windsor