nieprawidłowe wydanie docelowe: 1.7

121

Widziałem podobne pytania, ale nie znalazłem jeszcze odpowiedzi.

Używając kompilacji Maven, otrzymuję:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project api: Fatal error compiling: invalid target release: 1.7 -> [Help 1]

Oto plik pom.xml:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.0</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

Wersja Javac:

javac 1.7.0_25

Wersja Java:

java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

Masz jakiś pomysł, co to może być?

Karan
źródło
14
Najprawdopodobniej maven działa na Javie 6.
Peter Lawrey
3
Sprawdziłbym wszystkie twoje zmienne środowiskowe, aby zobaczyć, czy któreś z nich używają Javy 6. np. Java 7 może być na twojej ścieżce, ale pamiętam, że maven używał JAVA_HOME lub czegoś podobnego.
Peter Lawrey
36
Wykonaj mvn -version. Powie Ci, której Javy używa.
JB Nizet
masz rację, mvn używa java 1.6 - jak mogę to zmienić?
Karan
1
ustaw zmienną JAVA_HOME na katalog domowy JDK7.
JB Nizet

Odpowiedzi:

159

Musisz ustawić JAVA_HOME na swój katalog domowy jdk7, na przykład w systemie Microsoft Windows:

  • „C: \ Program Files \ Java \ jdk1.7.0_40”

lub na OS X:

  • /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home
Michał Nowak
źródło
71
Na komputerze Mac, na którym są zainstalowane jdk6 i jdk7, można to wymusić w pliku ~ / .profile:export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)
Hank,
3
jdk8 może być również używany do uzyskania zgodności z jdk7
Wolfgang Fahl
3
pamiętaj, aby ponownie załadować ~ / .profile na komputerze Mac z:source ~/.profile
Caio Iglesias.
Prawdopodobnie działa to na wiele rzeczy, ale nie wystarcza dla Mavena, a już na pewno nie dla wtyczki kompilatora maven. Sprawdź tutaj odpowiedź Mike'a na jego własne pytanie: stackoverflow pytanie 24705877 To rozwiązało problem zarówno w wierszu poleceń, jak i podczas zaćmienia. Pomocna może być również odpowiedź @LinGao na pytanie 2503658 o przepływie stosu i użycie zmiennej $ JAVACMD.
Litome
42

Poza ustawieniem JAVA_HOMEzmiennej środowiskowej, musisz upewnić się, że używasz poprawnego JDK w konfiguracji Mavena. Idź do Run -> Run Configuration , wybierz konfigurację Maven Build, przejdź do zakładki JRE i ustaw poprawne Runtime JRE.

Konfiguracja uruchamiania Mavena

Stanley
źródło
+1, wiedziałem, że zapomniałem czegoś zaktualizować ... Domyślną opcją (dla mnie) podczas tworzenia konfiguracji było „Alternatywne JRE”. Jeśli ktokolwiek inny to uruchomi, upewnij się, że Twoja wtyczka Maven ORAZ konfiguracje są poprawnie zaktualizowane!
king14nyr
Miałem odpowiedni JAVA_HOME dla Java 8, ale nadal mi go brakowało. Rozwiązałeś mój problem, dzięki
dtortola
3

W IntelliJ IDEA zdarzyło mi się to, kiedy zaimportowałem projekt, który działał dobrze i działał z Javą 1.7. Najwyraźniej nie powiadomiłem IntelliJ, że java 1.7 została zainstalowana na moim komputerze i nie znalazłem mojego $JAVA_HOME.

Na komputerze Mac można to rozwiązać przez:

Kliknięcie prawym przyciskiem myszy na moduł | Ustawienia modułu | Projekt

i dodając 1.7 SDK, wybierając „Nowy” w Project SDK.

Następnie przejdź do głównego menu IntelliJ IDEA | Preferencje | Maven | Biegacz

i wybierz poprawne środowisko JRE. W moim przypadku poprawnie zaktualizował Użyj Project SDK, który był teraz 1.7.

user1978019
źródło
Zauważ, że istnieją ustawienia projektu i preferencje dla Intellij przynajmniej na Macu, musiałem przejść do Ustawienia -> Buduj Exec, Wdróż -> Kompilator Java, a następnie ustawić wersję kodu bajtowego projektu zgodnie z potrzebami.
Otwarto
1

Kiedy maven pracuje poza Eclipse, ale podaje ten błąd po zmianie JDK, przejdź do konfiguracji Maven Run, a na dole strony głównej znajduje się opcja „Maven Runtime”. Mój używał wbudowanego mavena, więc po przełączeniu go na mojego zewnętrznego mavena, zadziałało.

djb
źródło
gdzie jest konfiguracja Maven Run?
R Claven
1
Kliknij prawym przyciskiem myszy plik build.xml, przejdź do „Uruchom jako”, a następnie „Uruchom konfigurację” powinno być ostatnią opcją. Jeśli przewiniesz typy konfiguracji uruchamiania, jedną z nich jest „Maven Build”, która ma opcję wyboru „Maven Runtime”. Obok znajduje się przycisk „konfiguruj”
djb,
0

Prawdopodobnie działa to na wiele rzeczy, ale nie wystarcza dla Mavena, a już na pewno nie dla wtyczki kompilatora maven.

Sprawdź odpowiedź Mike'a na jego własne pytanie tutaj: pytanie stackoverflow 24705877

To rozwiązało problem zarówno w wierszu poleceń, jak i podczas zaćmienia.

Również @LinGao odpowiedź na pytanie 2503658 stackoverflow i użycie zmiennej $ JAVACMD może pomóc, ale sam tego nie testowałem.

Litome
źródło