Jestem nowy w Maven i IntelliJ IDEA.
Mam projekt Maven napisany w Javie 8. Za każdym razem, gdy próbuję go zbudować (okno Maven Projects -> Lifecycle -> compile -> Run Maven Build) pojawia się seria błędów kompilacji:
[ERROR] path/to/file.java:[26,52] lambda expressions are not supported in -source 1.5
(use -source 8 or higher to enable lambda expressions)
Gdzie mam zmienić wartość parametru -source? Próbowałem dodać to jako dodatkowy parametr w Ustawienia -> Kompilator -> Kompilator Java, ale otrzymałem te same wyniki.
Poziomy językowe projektu i modułu są ustawione na 8.0.
Używam Maven 3.2.3 i IntelliJ IDEA Community Edition 13.1.2.
java
maven
intellij-idea
tearvisus
źródło
źródło
Odpowiedzi:
Lub łatwiej, dodaj to do
properties
sekcji swojego pom :<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
źródło
Podsumowanie:
Aby zmienić poziom języka, skorzystaj z
<build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.4</source> <target>1.4</target> </configuration> </plugin> </plugins> </build>
Właściwości nie zawsze zmieniają poziom języka Intellij!
W poniższym kodzie 1.4 zostało skonfigurowane w pomie za pomocą wtyczki maven-compiler-plugin
(jdk w Intellij to 1.8) i odpowiednio zmieniono poziom językowy projektu na 1.4:
Zostało dwukrotnie sprawdzone! To jest przykład. W większości przypadków nie będziesz obniżać wersji JDK do 1.4!
Oczywiście, jeśli używasz właściwości, powiedzmy, że wstawiłeś pom 1.8, to jeśli używasz 1.8 JDK w Intellij (domyślny poziom języka to 1.8 lub domyślny język został zmieniony ręcznie), to będziesz mógł kodować w 1.8 ALE podczas kompilacji mvn właściwości NIE będą widoczne i domyślnie zostanie ustawiony Maven 1.5, a kompilacja NIE powiedzie się!
źródło
Zmień źródło, jak pokazano poniżej w pom.xml
<build> <finalName>MQService</finalName> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
źródło
Nie sądzę, aby jakakolwiek odpowiedź na to pytanie dotyczyła obaw - „… w IntelliJ ”.
Oto kroki: -
źródło
Dodanie poniższych wierszy do katalogu głównego (na poziomie projektu) pom.xml pomogło mi rozwiązać powyższy problem: (obie opcje działały dla mnie)
Opcja 1:
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
Opcja 2:
<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>
pierwotnie opublikowane pod adresem: IntelliJ IDEA 13 używa Java 1.5 pomimo ustawienia na 1.7
źródło
Można to zrobić na dwa sposoby:
Najpierw dodaj właściwości
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
drugi - Dodaj wtyczkę
<plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin>
źródło
Powinieneś dodać poniższy kod w swoim pom.xml, aby wymusić zmianę poziomu języka
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>8</source> <target>8</target> </configuration> </plugin> </plugins> </build>
teraz intelliJ 2019.3 CE robi to za Ciebie, jeśli przejdziesz do importu, a następnie alt + enter, gdzie pojawi się opcja mówiąca „zmień poziom języka na 8, aby korzystać z tej funkcji”
źródło
otwórz terminal Ubuntu idź do katalogu głównego i wpisz:
export JAVA_HOME = <path to jdk>
na przykład u mnie działa dobrze {zrób to samo w terminalu IntelliJ}.
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
aby sprawdzić ustawiony typ wartości
echo $JAVA_HOME
aby sprawdzić typ wersji maven:
mvn -version
możesz znaleźć wszystkie ścieżki JDK, wpisując to polecenie, i możesz ustawić wersję JDK.
sudo update-alternatives --config java
sprawdź również, czy masz takie same
java -version
ijavac -version
.źródło