rilascio di destinazione non valido: 1.7


121

Ho visto domande simili, ma non ho ancora trovato la risposta.

Usando Maven Compile, ottengo:

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

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

Versione Javac:

javac 1.7.0_25

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

Qualche idea di cosa potrebbe essere?


14
Molto probabilmente Maven utilizza Java 6.
Peter Lawrey

3
Vorrei controllare tutte le variabili di ambiente per vedere se qualcuno sta usando Java 6. ad esempio Java 7 potrebbe essere sul tuo percorso, ma ricordo che Maven usa JAVA_HOME o qualcosa di simile.
Peter Lawrey

36
Esegui mvn -version. Ti dirà quale Java utilizza.
JB Nizet

hai ragione, mvn usa java 1.6 - come posso cambiarlo?
Karan

1
imposta la variabile JAVA_HOME sulla tua home directory JDK7.
JB Nizet

Risposte:


159

Devi impostare JAVA_HOME sulla tua home directory jdk7, ad esempio su Microsoft Windows:

  • "C: \ Programmi \ Java \ jdk1.7.0_40"

o su OS X:

  • /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home

71
Su un Mac, dove sono installati jdk6 e jdk7, questo può essere forzato in ~ / .profile:export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)
Hank

3
jdk8 può essere utilizzato anche per ottenere la conformità jdk7
Wolfgang Fahl

3
ricordati di ricaricare ~ / .profile sul mac con:source ~/.profile
Caio Iglesias

Questo probabilmente funziona per molte cose, ma non è sufficiente per Maven e certamente non per il plug-in del compilatore Maven. Controlla la risposta di Mike alla sua domanda qui: domanda stackoverflow 24705877 Questo ha risolto il problema per me sia dalla riga di comando che all'interno di eclipse. Inoltre, la risposta di @LinGao alla domanda di stackoverflow 2503658 e l'uso della variabile $ JAVACMD potrebbero aiutare.
Litome

42

Oltre a impostare JAVA_HOMEla variabile di ambiente, devi assicurarti di utilizzare il JDK corretto nella configurazione di esecuzione di Maven. Vai su Esegui -> Esegui configurazione , seleziona la configurazione della build Maven, vai alla scheda JRE e imposta il JRE di runtime corretto.

Configurazione di esecuzione di Maven


+1, sapevo che stavo dimenticando di aggiornare qualcosa ... L'opzione predefinita (per me) durante la creazione di una configurazione era "Alternate JRE". Se qualcun altro si imbatte in questo, assicurati che il tuo plug-in E le configurazioni di Maven siano aggiornati correttamente!
king14nyr

Avevo il JAVA_HOME giusto per Java 8 ma questo mi mancava ancora. Hai risolto il mio problema, grazie
dtortola

3

In IntelliJ IDEA questo è accaduto a me quando ho importato un progetto che funzionava bene e funzionava con Java 1.7. Apparentemente non avevo notificato a IntelliJ che java 1.7 era stato installato sulla mia macchina e non stava trovando il mio $JAVA_HOME.

Su un Mac, questo viene risolto da:

Fare clic con il tasto destro sul modulo | Impostazioni modulo | Progetto

e aggiungendo 1.7 SDK selezionando "Nuovo" in Project SDK.

Quindi vai al menu principale di IntelliJ IDEA | Preferenze | Maven | Corridore

e selezionare il JRE corretto. Nel mio caso è stato aggiornato correttamente Usa Project SDK, che ora era 1.7.


Nota che ci sono impostazioni di progetto e preferenze per Intellij almeno su un Mac, dovevo andare su Impostazioni -> Build Exec, Deploy -> Java Compiler e quindi impostare la versione del bytecode del progetto secondo necessità.
Aperto il

1

Quando Maven funziona al di fuori di Eclipse, ma fornisce questo errore dopo una modifica di JDK, vai alla configurazione di Maven Run e nella parte inferiore della pagina principale, c'è un'opzione "Maven Runtime". Il mio stava usando il Maven incorporato, quindi dopo averlo cambiato per usare il mio Maven esterno, ha funzionato.


dov'è la configurazione di Maven Run, per favore?
R Claven

1
Fare clic con il pulsante destro del mouse su build.xml, andare su "Esegui come" e quindi "Esegui configurazione" dovrebbe essere l'ultima opzione. Se scorri i tipi di configurazione di esecuzione, uno è "Maven Build" e ha un'opzione per scegliere il "Maven Runtime". C'è un pulsante "configura" accanto a quello
djb

0

Questo probabilmente funziona per molte cose, ma non è sufficiente per Maven e certamente non per il plug-in del compilatore Maven.

Controlla la risposta di Mike alla sua stessa domanda qui: domanda stackoverflow 24705877

Questo ha risolto il problema per me sia dalla riga di comando che all'interno di eclipse.

Inoltre, la risposta di @LinGao alla domanda di stackoverflow 2503658 e l'uso della variabile $ JAVACMD potrebbe aiutare ma non l'ho testato da solo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.