2013-03-25 14 views
22

Sto scrivendo un'applicazione Maven utilizzando OpenJDK 1.8 ed eseguo test utilizzando TestNG.Problemi durante l'esecuzione di Java 8 TestNG all'interno di IntelliJ

Quando eseguo Maven dalla riga di comando tutto funziona bene, ma quando provo a eseguire il test all'interno IntelliJ, allora il processo di make è visualizzato il seguente errore:

java: javacTask: source release 8 requires target release 1.8 

Ho le impostazioni del progetto di puntamento al livello 1.8 e JDK Progetto 8.

All'interno Maven ho il seguente blocco (che sto indovinando non sta ottenendo ancora chiamato come sembra essere la marca la causa del problema)

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.3.2</version> 
    <configuration> 
     <source>1.8</source> 
     <target>1.8</target> 
    </configuration> 
    </plugin> 

Ho persino configurato il Maven Runner JRE per puntare al 1.8 JDK.

io proprio non sembrano essere in grado di ottenere IntelliJ 12.0.4 per eseguire il test correttamente

mi sto perdendo qualcosa?

+3

È possibile allegare la directory .idea e i file .iml? Devi controllare che i tuoi moduli non sovrascrivano il livello di bytecode e tutti i moduli sono impostati per utilizzare JDK 1.8 senza aggiungere opzioni aggiuntive al compilatore. – CrazyCoder

+0

compiler.xml aveva Si può scrivere come una risposta così posso accettare che si prega di – Xetius

risposta

71

Dopo il suggerimento da CrazyCoder si scopre che .idea/compiler.xml ha avuto la seguente sezione in esso

<bytecodeTargetLevel> 
    <module name="game" target="1.7" /> 
</bytecodeTargetLevel> 

l'ho cambiato a:

<bytecodeTargetLevel> 
    <module name="game" target="1.8" /> 
</bytecodeTargetLevel> 

e ha funzionato

+1

Questo è esattamente quello che ero cercando. Grazie! –

+18

Questo può anche essere cambiato in 'Impostazioni' →' Compilatore' → 'Compilatore Java' →' Versione bytecode per-modulo'. – Bombe

+0

ha reso la mia giornata e mi ha risparmiato un sacco di tempo. Grazie! – Thkru

7

C'è un altro modo per farlo. Vai a File-> Altre impostazioni-> digita "javac" nella barra di ricerca -> cambia l'impostazione predefinita di JDK su "1.8" o qualsiasi versione che desideri.

2

risposta Xetius' non ha funzionato per me in IntelliJ 14.1.2

Alla fine ho trovato la sezione .idea/misc.xml

<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="1.7" project-jdk-type="JavaSDK"> 
    <output url="file://$PROJECT_DIR$/out" /> 
</component> 

ho finito con:

<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="false" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> 
    <output url="file://$PROJECT_DIR$/out" /> 
</component> 
+0

FWIW, penso che questo sia cambiato automaticamente dopo aver cambiato il JDK a livello di progetto e intellij ti chiede se vuoi ricaricare il progetto. Strano che non sia stato fatto per te – Amalgovinus

0

Per me, avevo bisogno di andare a File> Struttura del progetto> Moduli. La metà dei miei moduli aveva il campo "module SDK" impostato sulla cosa sbagliata (non Project Default come avrebbero dovuto essere).

Problemi correlati