Meine POM-Dateilisten
<project>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
...
Aber auf mvn clean install
bekomme ich
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] Failure executing javac, but could not parse the error:
javac: invalid target release: 1.7
Usage: javac <options> <source files>
/usr/bin/java -version
ist ( which java
Punkte hier)
java version "1.7.0_10"
Java(TM) SE Runtime Environment (build 1.7.0_10-b18)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)
javac
verweist auch auf die richtige Java-Version
/usr/bin/javac -> /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/bin/javac
Auf diesem Computer verwende ich zsh
( echo $0
Rückgabe -zsh
)
In meinem habe .zshrc
ich definiert:
33 # HOME
34 JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home
35 SCALA_HOME=/Library/Scala/current
36 FORGE_HOME=~/tools/forge/
37
38 # PATH
39 PATH="/Library/Frameworks/Python.framework/Versions/3.2/bin:${PATH}"
40 PATH=${PATH}:${JAVA_HOME}/bin
41 PATH=${PATH}:/bin/
42 PATH=${PATH}:/sbin/
43 PATH=${PATH}:/usr/bin/
44 PATH=${PATH}:/usr/sbin/
45 PATH=${PATH}:/opt/local/bin/
46 PATH=${PATH}:/opt/local/sbin/
47 PATH=${PATH}:/usr/local/git/bin
48 PATH=${PATH}:/usr/local/git/sbin
49 PATH=${PATH}:/Applications/Xcode.app/Contents/Developer/usr/bin
50 PATH=${PATH}:${SCALA_HOME}/bin
51 PATH=${PATH}:${FORGE_HOME}/bin
52
53 export PATH
Wenn ich laufe, mvn clean install --debug
sehe ich, dass ich tatsächlich Java 6 verwende
1 Apache Maven 3.0.3 (r1075438; 2011-02-28 11:31:09-0600)
2 Maven home: /usr/share/maven
3 Java version: 1.6.0_35, vendor: Apple Inc.
4 Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Wo könnte es definiert werden? Ich habe Quelle (d) meine .zshrc mehrmals.
/usr/bin
ersten Platz in der Liste der Verzeichnisse. Versuchen Sie esjavac -version
ohne Angabe eines Verzeichnisses.javac 1.7.0_10
echo $JAVA_HOME
sagt dir das?--debug
, sollte es Ihnen die genaue Befehlszeile mitteilen, die zum Ausführen verwendet wirdjavac
(zusammen mit Tonnen anderer Dinge). Was sagt es?Antworten:
Überprüf den
mvn
Skript in Ihrer Maven-Installation, um festzustellen, wie der Befehl erstellt wird. Vielleicht haben Sie oder jemand anderes dort ein fest codiertJAVA_HOME
und es vergessen.quelle
mvn
Skript war nicht mit meiner OSX-Installation von Oracle JDK 7 kompatibel, und ich habe nichts Besonderes getan, um es einzurichten (das Skript sucht nach einem Ordner,Library/Java/JavaVirtualMachines/CurrentJDK
der für mich nicht vorhanden war (was vorhanden war, istjdk1.7.0_25.jdk
stattCurrentJDK
). Nicht eine elegante Lösung, aber ich habe gerade den Export hartcodiert und jetzt funktioniert es (PS: Maven unter OSX ist bei/usr/share/maven/bin/mvn
)/usr/local/bin/mvn
Versuchen Sie es mit einer neueren Version des Maven Compiler Plugins:
Außerdem ist es global besser, die Quelldatei-Codierung in Maven anzugeben:
BEARBEITEN : Da diese Antwort immer noch Beachtung findet, möchte ich nur darauf hinweisen, dass die neuesten Werte (Stand der letzten Bearbeitung) 3,2 für das Maven-Compiler-Plugin und 1,8 für Java sind, da Fragen zum Kompilieren von Java 8-Code über Maven gebunden sind erscheint bald :-)
quelle
Ich hatte das gleiche Problem und um dieses zu lösen, folge ich diesem Blog-Artikel: http://www.mkyong.com/java/how-to-set-java_home-environment-variable-on-mac-os-x/
spezielle tks an @mkyong
EDIT: Jetzt benutze ich: jEnv + sdkman
quelle
Bitte überprüfen Sie Ihre pom.xml auf die folgenden Tags
Es sollte auf die erforderliche JDK-Version verweisen
quelle
Sie müssen die Maven-Version überprüfen:
Sie finden die Java-Version, die Maven zum Kompilieren verwendet. Möglicherweise müssen Sie JAVA_HOME bei Bedarf zurücksetzen.
quelle
Ich hatte das gleiche Problem. Ich habe festgestellt, dass dies daran liegt, dass das Maven-Skript den unten stehenden Link CurrentJDK überprüft und ein 1.6 JDK findet. Selbst wenn Sie das neueste JDK installieren, wird dies nicht behoben. Während Sie JAVA_HOME einfach in Ihrem Skript $ HOME / .bash_profile festlegen konnten, habe ich mich dafür entschieden, den symbolischen Link wie folgt zu reparieren:
Beachten Sie, dass CurrentJDK auf 1.6.0.jdk zeigt
Um dies zu beheben, habe ich die folgenden Befehle ausgeführt (Sie sollten Ihre installierte Version überprüfen und entsprechend anpassen).
quelle
Diagnose:
Sie können sehen, welche Java-Version Maven verwendet, indem Sie "mvn --version" ausführen.
Lösung für Debian:
Das mvn-Skript legt die Variable JAVA_HOME env intern fest, indem nach javac (welches javac) gesucht wird. Wenn Sie mehrere Java-Versionen gleichzeitig installiert haben, z. B. JDK 6 und JDK 7, und das Debian Alternatives-System verwenden, um zwischen ihnen zu wählen, obwohl mvn die Alternative für "java" in JDK 7 geändert hat, verwendet mvn weiterhin JDK 6. Sie muss auch die Alternative für "javac" ändern. Z.B:
BEARBEITEN:
Eine noch bessere Lösung ist die Verwendung von Update-Java-Alternativen (z.
wie unter https://wiki.debian.org/JavaPackage beschrieben , da dadurch alle Alternativen zu verschiedenen Java-Tools geändert werden (es gibt ungefähr ein Dutzend).
quelle
Könnten Sie ein neueres Plugin ausprobieren? auf der Maven-Site:
Ich habe auch folgendes gesehen:
quelle
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project divs: Fatal error compiling: invalid target release: 1.7 -
Versuchen Sie, die Java-Compilereinstellungen in den Eigenschaften von Eclipse- zu ändern.
Springen Sie zu: Einstellungen-> Java-> Compiler-> Compiler-Konformitätsstufe-> 1.7 Übernehmen OK
Starten Sie die IDE neu.
Bestätigen Sie die Compiler-Einstellung für das Projekt. Springen Sie zu: Projekteigenschaften-> Java-Compiler-> Deaktivieren Sie (Konformität aus der Ausführungsumgebung 'JavaSE-1.6' im Java-Erstellungspfad verwenden.) Und wählen Sie 1.7 aus der Dropdown-Liste aus. (Ignorieren, wenn bereits 1.7)
Starten Sie die IDE neu.
Wenn das Problem weiterhin besteht, führen Sie einzelne Testfälle mit dem Befehl im Terminal aus.
quelle
Ich bin mir nicht sicher, welches Betriebssystem hier verwendet wird, aber Sie können eine Menge Java-Versionen eliminieren, die un debian / ubuntu mit Update-Java-Alternativen futzing, um das Standard-JVM-System weit festzulegen.
Verwenden Sie zum Festlegen eines neuen:
Für die meisten Apps muss JAVA_HOME nicht festgelegt werden.
quelle
Klicken Sie mit der rechten Maustaste auf Ihr Projekt in Eclipse und öffnen Sie "Konfigurationen ausführen". Überprüfen Sie dort die jre-Version. Manchmal ändert sich dies in Eclipse standardmäßig nicht, nachdem sogar die Version im Buildpath geändert wurde.
quelle
Bei einer bestimmten Kompilierung, für die eine (nicht standardmäßige
/etc/alternatives/java
) JVM erforderlich ist , sollten Sie demmvn
Befehl Folgendes voranstellenJAVA_HOME
:Hier nehmen wir an, dass der Standard Java 8 ist, während wir für das jeweilige Projekt Java 7 benötigen.
quelle
{JAVA_1_4_HOME} / bin / javacy Sie können auch versuchen ...
quelle
Ok, ich habe dieses Problem auch alleine gelöst. Es ist wichtiger, dass Sie JAVA_HOME haben. Wenn Sie im Vergleich zu den Quell- / Zieleigenschaften des Maven-Plugins keine niedrigere oder keine Version haben, wird dieser Fehler angezeigt.
Stellen Sie sicher, dass Ihr JAVA_HOME eine gute Version enthält und in Ihrem PATH enthalten ist.
quelle
Möglicherweise geben Sie eine falsche Java-Version an. Java-Version (in Ihrem Terminal), um die von Ihnen verwendete Java-Version zu überprüfen. Die neueste Version des Maven-Compilers finden Sie im Maven-Compile-Plugin. Wenn Sie Java 6 verwenden und die neueste Version des Maven-Compiler-Plugins 3.1 ist, wird Ihr Plugin möglicherweise so angezeigt
quelle
Keine der vorherigen Antworten hat meinen Anwendungsfall vollständig gelöst.
Muss das zu entfernende Verzeichnis entfernen. Reinigen. Und dann neu installieren. Sieht aus wie ein Problem mit stillen Berechtigungen.
quelle
Ich hatte dieses Problem in IntelliJ IDEA 14, bis ich zum Menü Datei -> Projektstruktur ging und das Projekt-SDK auf 1.7 und die Projektsprachenstufe auf 7 änderte.
quelle
Ich hatte dieses Problem bei der Arbeit mit Eclipse. Ich musste den Erstellungspfad des Projekts so ändern, dass er sich auf jre 7 bezieht
quelle