Po uruchomieniu testu JUnit za pomocą IntelliJ IDEA otrzymuję
Jak mogę to naprawić?
- Korzystanie z SDK 1.7
- Poziom języka modułu to 1.7
Kompilacja Maven działa dobrze. (Dlatego uważam to za problem z konfiguracją IDEA)
Po uruchomieniu testu JUnit za pomocą IntelliJ IDEA otrzymuję
Jak mogę to naprawić?
Kompilacja Maven działa dobrze. (Dlatego uważam to za problem z konfiguracją IDEA)
Odpowiedzi:
Najprawdopodobniej masz niepoprawne opcje kompilatora zaimportowane z Maven tutaj:
Sprawdź także ustawienia wersji kodu bajtowego projektu i modułu ( docelowe ) przedstawione na zrzucie ekranu.
Inne miejsca, w których skonfigurowano poziom języka źródłowego :
Domyślny poziom języka Maven to 1,5 (5,0), zobaczysz tę wersję jako poziom języka Moduł na zrzucie ekranu powyżej.
Można to zmienić za pomocą konfiguracji wtyczki kompilatora maven wewnątrz pom.xml
:
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
</project>
lub
<project>
[...]
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
[...]
</project>
IntelliJ IDEA zastosuje się do tego ustawienia po ponownym zaimportowaniu projektu Maven w oknie narzędzia Maven Projects :
pom.xml
konfiguracja wtyczki kompilatora Java może określić wersję Java, która zastąpi to ustawienie przy następnym wprowadzeniu zmian w pliku pom.xml (jeśli włączona jest automatyczna ponowna importacja) lub ponownym importowaniu projektu ręcznie.
Podobne do omówionego poniżej dla IntelliJ 13 i 14, ale z dodatkowym poziomem w panelu Ustawienia / Preferencje: Ustawienia > Kompilacja, wykonanie, wdrożenie > Kompilator > Kompilator Java .
W IntelliJ 13 i 14 sprawdź Ustawienia> Kompilator> Interfejs kompilatora Java, aby upewnić się, że nie celujesz w inną wersję kodu bajtowego w swoim module.
W IntelliJ IDEA 14.1 „Docelowa wersja kodu bajtowego” znajduje się w innym miejscu.
Następująca zmiana działała dla mnie:
Plik> Ustawienia ...> Kompilacja, wykonanie, wdrożenie> Kompilator> Kompilator Java : zmień docelową wersję kodu bajtu z 1,5 na 1,8
Czy spojrzałeś na konfigurację kompilacji, tak powinno być, jeśli używasz maven 3 i JDK 7
<build>
<finalName>SpringApp</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
...
</plugins>
...
</build>
Natknąłem się na to i poprawką było przejście do Ustawień projektu> Moduły> kliknij konkretny moduł> zakładkę Zależności. Zauważyłem, że moduł SDK wciąż był ustawiony na 1.6, zmieniłem go na 1.7 i działało.
Zmodyfikuj plik ustawień kompilatora projektu w następującej ścieżce i zmień „target” na 1.7:
/project/.idea/compiler.xml
<bytecodeTargetLevel>
<module name="project-name" target="1.7" />
</bytecodeTargetLevel>
Rozwiązałem to, ustawiając pole puste:
Ustawienia> Kompilator> Kompilator Java> Wersja kodu bajtowego projektu
Niż IntelliJ używa domyślnej wersji JDK.
Z jednej chwili na drugi ten błąd też otrzymałem bez wyraźnego powodu. Zmieniłem wszelkiego rodzaju ustawienia kompilatora / modułu itp. Ale w końcu właśnie odtworzyłem projekt IntelliJ, ponownie importując projekt Maven i problem został rozwiązany. Myślę, że to błąd.
IntelliJ 12 129,961
Uderzyłem to po niewielkiej aktualizacji z IntelliJ IDEA 14 do wersji 14.1. Dla mnie pomogła zmiana edycji top / Parent Pom, a następnie kliknąłem ponownie importuj Maven (jeśli nie jest to automatyczne).
Ale może wystarczy kliknąć prawym przyciskiem myszy moduł / moduły / moduł nadrzędny i Maven -> Reimport.
Jeśli jest to projekt Gradle, w pliku build.gradle wyszukaj następujące ustawienia:
sourceCompatibility = "xx"
targetCompatibility = "xx"
Dla wszystkich podprogramów w głównym pliku build.gradle możesz umieścić:
subprojects { project ->
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
}
Chociaż możesz ręcznie ustawić poziomy językowe w Pomysł> Ustawienia, jeśli jest to projekt Gradle, Idea automatycznie synchronizuje pliki modułu .iml z ustawieniami Gradle (testowane z Idea 15+). Dlatego wszystkie ręczne zmiany są zastępowane po odświeżeniu stopnia.
Na podstawie dokumentacji Gradle , jeśli nie są one ustawione, używana jest bieżąca konfiguracja JVM.
Znalazłem inny sposób na wystąpienie tego błędu. Możesz to uzyskać, jeśli ponownie organizujesz strukturę katalogów, a jeden z poms wskazuje starego rodzica, który już nie konfiguruje javac (ponieważ ta konfiguracja została przeniesiona na poziom średni). Jeśli tak się stanie, najwyższy poziom domyślnie wyniesie 1,5, a niewłaściwie zachowujący się pom dolny odziedziczy go.
Kolejną rzeczą, którą należy sprawdzić, gdy zobaczysz ten błąd, jest to, czy struktura pom poprawnie dopasowuje się do struktury katalogów.
Jeśli kompilacja Maven działa poprawnie, spróbuj zsynchronizować strukturę projektów Maven i IntelliJ IDEA.
W oknie narzędzia Maven kliknij przycisk odświeżania . Po naciśnięciu tego przycisku IntelliJ IDEA analizuje strukturę projektu w oknie narzędzia Maven.
Pamiętaj, że może to nie pomóc, jeśli używasz kompilacji EAP, ponieważ funkcja synchronizacji Maven może czasami być zepsuta.
Upewnij się, że wybrano odpowiednią depresję. Plik> Struktura projektu
Wybierz swój projekt i przejdź do zakładki Zależności. Wybierz odpowiednią zależność z menu rozwijanego lub utwórz nową.
Jeśli wszystkie poprzednie rozwiązania nie działały dla Ciebie (tak było w moim przypadku), możesz usunąć pliki konfiguracyjne intellij:
Intellij zregeneruje nowe później. Należy jednak zachować ostrożność, spowoduje to również usunięcie całej konfiguracji intellij dokonanej na projektorze (tj .: konfiguracja trybu debugowania, ...)