2013-03-25 10 views
22

Piszę aplikację Maven przy użyciu OpenJDK 1.8 i przeprowadzam testy przy użyciu TestNG.Problemy z uruchomieniem Java 8 TestNG wewnątrz IntelliJ

Kiedy uruchomić Maven z wiersza polecenia wszystko działa poprawnie, ale gdy próbuję uruchomić test wewnątrz IntelliJ, wtedy proces make wyświetla się następujący błąd:

java: javacTask: source release 8 requires target release 1.8 

mam ustawienia projektu wskazując do poziomu 1,8 JDK i projektu językowego 8.

Wewnątrz Maven mam następujący blok (który mam zgadywać nie jest uzyskiwanie jeszcze nazywa się to wydaje się być marka przyczyną problemu)

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

Skonfigurowałem nawet środowisko Jave Runner, aby wskazywał na 1.8 JDK.

po prostu nie wydają się być w stanie uzyskać IntelliJ 12.0.4 aby uruchomić testy prawidłowo

jestem brakuje czegoś?

+3

Czy możesz dołączyć plik .idea i pliki .iml? Należy sprawdzić, czy moduły nie zastępują poziomu kodu bajtowego, a wszystkie moduły są skonfigurowane do używania JDK 1.8 bez dodatkowych opcji kompilatora. – CrazyCoder

+0

compiler.xml miał można napisać jako odpowiedź więc mogę go zaakceptować proszę – Xetius

Odpowiedz

71

Po podpowiedź z CrazyCoder okazuje się, że .idea/compiler.xml miał następującą sekcję w nim

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

zmieniłem to:

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

i to działało

+1

To jest dokładnie to, co było szukam. Dzięki! –

+18

Można to również zmienić w 'Ustawienia' →' Kompilator' → 'Kompilator Javy' →' Wbudowana wersja kodu bajtowego'. – Bombe

+0

zrobił mój dzień i zaoszczędził mi dużo czasu. Dzięki! – Thkru

7

Jest inny sposób na zrobienie tego. Idź do Files-> Other Settings-> Wpisz "javac" w pasku wyszukiwania -> zmień domyślną JDK na "1.8" lub dowolną wersję, na którą celujesz.

2

odpowiedź Xetius' nie działa na mnie w IntelliJ 14.1.2

W końcu znalazłem rozdział w .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> 

skończyło się z:

<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, myślę, że to się zmieni automatycznie po przełączeniu JDK na poziomie projektu, a intellij zapyta, czy chcesz przeładować projekt. Dziwne, że nie zrobiono tego dla ciebie – Amalgovinus

0

Dla mnie musiałem przejść do Plik> Struktura projektu> Moduły. Połowa moich modułów miała błędnie ustawione pole "moduł SDK" (nie było to ustawienie domyślne projektu, tak jak powinno).

Powiązane problemy