2015-03-13 11 views
13

IntelliJ si lamenta con la seguente eccezione quando provo a realizzare il mio progetto.'jvm-1.8' non è una scelta valida per '-target'

Error:scalac: 'jvm-1.8' is not a valid choice for '-target' 
Error:scalac: bad option: '-target:jvm-1.8' 

Ma un'installazione "gradlew clean" funziona perfettamente.

Il setup progetto è:

Gradle versione 2.3

scala 2.10 e java

3 dei 4 moduli utilizzare Java 1.7 (fonte e compatibilità destinazione), il 4 ° modulo ha origine e destinazione compatibilità 1.8 e sta causando il problema.

Qualche idea su come evitare l'errore? (passare a java 7 non è un'opzione, l'aggiornamento di scala è)

+0

IntelliJ è in esecuzione su java 7? – migron

+0

Lo schermo about dice 1.8_20 –

risposta

6

Gradle di default usa l'attività ant per costruire il codice Scala, e https://issues.scala-lang.org/browse/SI-8966 mostra che jvm 1.8 non è stato aggiunto come target supportato fino a Scala 2.11.5.

Puoi provare a utilizzare il compilatore basato su Zinco aggiungendo il seguente file di sviluppo gradle.

tasks.withType(ScalaCompile) { 
     scalaCompileOptions.useAnt = false 
    } 

Potrebbe anche essere necessario aggiungere il compilatore di zinco all'elenco delle dipendenze.

+2

hm, la build gradle funziona davvero, è solo all'interno di intellij che vedo questo problema. Bene, aggiornerò la versione di scala e vedrò cosa succede. –

+0

Accettato, perché questo indica la direzione giusta. Ancora non capisco i dettagli, ma l'aggiornamento a scala 2.11 nello script di costruzione ha risolto il problema in intellij –

3

Ero alla ricerca di una soluzione per questo per anni, finalmente trovato - condivisione per chiunque altro leggere questo.

Tratto da: https://devnet.jetbrains.com/message/5523902

subprojects { 
    tasks.withType(ScalaCompile) { 
     sourceCompatibility = "1.7" 
     targetCompatibility = "1.7" 
    } 
} 
6

In IntelliJ IDEA (15 CE) aggiungere questa opzione scalac compilatore:

Genera, esecuzione, distribuzione ->Compiler ->Scala Compiler -> Default

Opzioni del compilatore aggiuntive: -target:jvm-1.7 (era vuoto).

C'erano anche i profili Gradle 1, ... con -target:jvm-1.8, quindi li ho modificati anche in -target:jvm-1.7.

Sto utilizzando Scala 2.10, JVM 1.8, compatibilità di origine 1.7. Ha aiutato nel mio caso.

+0

Dopo aver eseguito quanto sopra, ho ottenuto l'eccezione Errore: scala: opzione errata: '-target: jvm-1.8', @ Bohumir Zamecnik – Jet

0

Se si utilizza JDK 1.8 come SDK IntelliJ Project, il livello predefinito della lingua del progetto e la compatibilità della sorgente potrebbero essere impostati sulla versione 8 per impostazione predefinita. Questo si rifletterà anche nelle impostazioni del compilatore di Scala di IntelliJ.

Per ignorare Java 8 livello di lingua di default, è stato solo necessario per me per aggiungere le seguenti al mio build.gradle:

sourceCompatibility = 1.7 

Dopo aver fatto questo, faccio IntelliJ IDEA importare nuovamente il progetto Gradle.Si dovrebbe quindi confermare che il cambiamento è stato raccolto da IntelliJ controllando sotto: Impostazioni -> Crea, Execution, Distribuzione -> Compiler -> Scala Compiler

Guarda le opzioni addizionali per il compilatore campo per ciascuna delle i moduli elencati e assicurarsi che contenga -target:jvm-1.7 e non -target:jvm-1.8.

Under Impostazioni progetto -> Moduli, si dovrebbe vedere che il livello Lingua è ora impostato per troppo.

N.B. Impostare la proprietà sourceCompatibility nelle proprietà Gradle allprojects, subprojects o utilizzare tasks.withType(ScalaCompile) non ha funzionato per me; doveva essere specificato separatamente per essere prelevato.

(questo ha lavorato per me usando IntelliJ IDEA 2017/02/03, Gradle 4.1, il plugin Gradle Scala e Scala versione 2.10)

3

ho ottenuto lo stesso messaggio di errore utilizzando IntelliJ 2017/02/05 w/JRE 1.8.0, scala 2.10.5 e gradle 3.3. Ho risolto il mio problema controllando i "delegato IDE build/azioni svolte a Gradle" casella di controllo IDE IntelliJ situato a

Impostazioni> Crea, esecuzione, distribuzione> Costruire Strumenti> Gradle> Runner

dettagli possono essere trovati qui : https://docs.gradle.org/4.2.1/userguide/scala_plugin.html#ideaTargetVersion

Di nota, sono stato in grado di creare il mio progetto gradle all'esterno di IntelliJ (cioè la linea cmd) e ho ricevuto questo errore solo nel tentativo di creare utilizzando l'IDE IntelliJ.

Problemi correlati