Zaimportowałem projekt Maven i korzystałem z Java 1.5, mimo że mam 1.6 skonfigurowany jako domyślny Eclipse Preferences->Java->Installed JREs
.
Kiedy zmieniłem projekt Maven na wersję 1.6 JRE, nadal istniały błędy kompilacji z okresu, gdy projekt korzystał z Java 1.5 (te błędy kompilacji opisałem wcześniej w: Mam błędy kompilacji z m2eclipse, ale nie z maven2 w wierszu poleceń - czy moja m2eclipse jest źle skonfigurowana? )
Mam zamiar usunąć projekt i spróbować ponownie, ale tym razem chcę upewnić się, że używa on Java 1.6 od początku, aby sprawdzić, czy to wyeliminuje problemy z kompilacją.
Jak upewnić się, że projekt korzysta z Java 1.6 podczas importowania?
Odpowiedzi:
Wtyczka m2eclipse nie korzysta z domyślnych ustawień Eclipse, wtyczka m2eclipse wyprowadza ustawienia z POM. Jeśli więc chcesz, aby projekt Maven został skonfigurowany do korzystania z ustawień Java 1.6 po zaimportowaniu do Eclipse, skonfiguruj
maven-compiler-plugin
odpowiednio, jak już zasugerowałem:Jeśli twój projekt jest już zaimportowany, zaktualizuj konfigurację projektu ( kliknij projekt prawym przyciskiem myszy, a następnie Maven V Aktualizuj konfigurację projektu ).
źródło
Dodałem to do mojego pom.xml poniżej opisu projektu i zadziałało:
źródło
<properties> <maven.compiler.source>9</maven.compiler.source> <maven.compiler.target>9</maven.compiler.target> </properties>
Chciałem dodać coś do już udzielonej odpowiedzi. maven-compiler-plugin domyślnie skompiluje twój projekt przy użyciu Java 1.5, gdzie m2e otrzymuje jego informacje.
Dlatego musisz jawnie zadeklarować wtyczkę kompilatora maven w swoim projekcie za pomocą czegoś innego niż 1.5. Twój efekt
pom.xml
będzie domyślnie używał domyślnego zestawu we wtyczce kompilatora mavenpom.xml
.źródło
DEFAULT_SOURCE
aDEFAULT_TARGET
, ale ustawione na 1,5.źródło
Oto podstawowa przyczyna java 1.5:
Odniesienia: Wtyczka kompilatora Apache Mavem
Oto szczegóły:
Zwykły pom.xml
Po pobraniu wtyczki z rozszerzonej wersji POM (Effective POM),
Można to uzyskać za pomocą tego polecenia z wiersza polecenia
C:\mvn help:effective-pom
Po prostu umieściłem tutaj mały fragment zamiast całego pom.Nawet tutaj nie widzisz, gdzie jest zdefiniowana wersja Java, pozwala kopać więcej ...
Pobierz wtyczkę Apache Maven Compiler Plugin »3.1 jako dostępną w słoiku i otwórz ją w dowolnym narzędziu do kompresji plików, takim jak 7-zip
Przejdź przez słoik i znajdź
plik w folderze
Teraz zobaczysz następującą sekcję w pliku,
Spójrz na powyższy kod i znajdź następujące 2 linie
Powodzenia.
źródło
quickstart
artefaktem.Twoje środowisko JRE zostało prawdopodobnie zdefiniowane w konfiguracji uruchamiania. Wykonaj następujące kroki w Eclipse, aby zmienić środowisko JRE kompilacji.
1) Kliknij prawym przyciskiem myszy projekt i wybierz Uruchom jako > Uruchom konfiguracje
2) W oknie Uruchom konfiguracje wybierz konfigurację kompilacji projektu na lewym panelu. Po prawej stronie zobaczysz różne zakładki: Main, JRE, Refresh, Source, ...
3) Kliknij zakładkę JRE, powinieneś zobaczyć coś takiego
4) Domyślnie będzie używane Domyślne środowisko JRE pracy (środowisko JRE wybrane jako domyślne w Preferencje-> Java-> Zainstalowane środowiska JRE ). Jeśli chcesz użyć innego zainstalowanego środowiska JRE, zaznacz pole wyboru Alternatywne środowisko JRE i wybierz preferowane środowisko JRE z menu rozwijanego.
źródło
Najprostsze rozwiązanie w Springboot
Dam ci najprostszy, jeśli używasz Springboot:
Następnie kliknij prawym przyciskiem myszy projekt Eclipse: Maven> Aktualizuj projekt> Zaktualizuj konfigurację projektu z pom.xml
To powinno wystarczyć.
źródło
Ustawienia specyficzne dla projektu
Kolejnym miejscem, w którym może się to nie udać, są ustawienia specyficzne dla projektu, w Eclipse.
właściwości projektu: kliknij swój projekt i jedną z następujących opcji:
kliknij „Kompilator Java”
Ze względu na wymagania klientów umożliwiliśmy im utrzymanie naszych projektów w wersji 1.6. Gdy potrzebna była aktualizacja do wersji 1.7, mieliśmy trudności, ponieważ musieliśmy zmienić wersję Java w całym miejscu:
źródło
Jeszcze jeden możliwy powód, jeśli używasz Tycho i Maven do budowania pakietów, że masz zdefiniowane nieprawidłowe środowisko wykonywania (
Bundle-RequiredExecutionEnvironment
) w pliku manifestu (manifest.mf
). Na przykład:W moim przypadku wszystko inne było w porządku. Wtyczki kompilatora (normalne maven i teo) zostały ustawione poprawnie, wciąż m2 generowało stary poziom zgodności z powodu manifestu. Myślałem, że dzielę się doświadczeniem.
źródło
Odkryłem, że moim problemem był ktoś, który zatwierdził plik .project i .classpath, który miał odniesienia do Java1.5 jako domyślnego środowiska JRE.
Zamykając projekt, usuwając pliki, a następnie ponownie importując jako projekt Maven, byłem w stanie poprawnie ustawić projekt do korzystania z JRE obszaru roboczego lub odpowiedniego jdk bez powrotu do 1.5. Dlatego unikaj sprawdzania w SVN plików .project i .classpath
Mam nadzieję, że to pomaga innym.
źródło
Jeśli chcesz się upewnić, że nowo utworzone projekty lub importowane projekty w Eclipse używają innej domyślnej wersji Java niż Java 1.5, możesz zmienić konfigurację we wtyczce maven-kompilator.
W następujących wierszach:
<source Implementation = "java.lang.String" default-value = "1.5"> $ {maven.compiler.source} </source>
<target Implementation = "java.lang.String" wartość domyślna = "1.5"> $ {maven.compiler.target} </target>
zmień wartość domyślną na 1.6 lub 1.8 lub cokolwiek chcesz.
Odtąd wszystkie nowe projekty Maven używają podanej wersji Java.
Informacje pochodzą z następującego postu na blogu: https://sandocean.wordpress.com/2019/03/22/directly-generating-maven-projects-in-eclipse-with-java-version-newer-than-1-5/
źródło
Aby zmienić wersję JDK, możesz:
1- Projekt> Właściwości
2- Idź do ścieżki kompilacji Java
3- W bibliotekach wybierz System JRE ... i kliknij Edytuj
4- Wybierz odpowiednią wersję i sprawdź poprawność
źródło