Mit IntelliJ 12 habe ich ein Java-Projekt und ich benutze Maven mit einer pom.xml. Mein Projekt verwendet Java8, aber anscheinend wurde beim Importieren des Projekts die Standard-Sprachsprache für das Projekt auf 6 festgelegt.
Ich kann die Sprachstufe auf 8.0 ändern (F4 -> Module -> Sprachstufe), aber jedes Mal, wenn ich meine pom.xml bearbeite, wird die Projektebene wieder auf "Projektsprachenstufe verwenden" umgeschaltet, und ich muss diese Einstellungen erneut bearbeiten und nochmal.
Muss ich der Datei pom.xml etwas hinzufügen, um die Standardsprache auf 8.0 festzulegen?
java
maven
intellij-idea
pom.xml
QUentin
quelle
quelle
Antworten:
Nach Marks Kommentar geht es folgendermaßen vor:
quelle
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
Eine kürzere Version der Antwort von vikingsteve lautet:
quelle
Ich denke, das hat mit einem konzeptionellen Konflikt zwischen dem Maven-Compiler-Plugin und der IntelliJ-Idee zu tun. Anscheinend haben die neueren Versionen des Compiler-Plugins eine Standardstufe von 1,5 (siehe http://maven.apache.org/plugins/maven-compiler-plugin/ ). Wenn also das Compiler-Plugin überhaupt in einem Projekt verwendet wird und die Compiler-Ebene nicht explizit in der Datei pom.xml festgelegt ist, wird die Ebene bei jeder erneuten Verarbeitung des POM auf die Standardeinstellung zurückgesetzt.
Es gibt also einen konzeptionellen Konflikt, der von Intellij IDEA ignoriert wird. Die IDE ermöglicht weiterhin das Festlegen der Projekt- und Moduleinstellungen, bietet jedoch keine Warnung oder Rückmeldung, dass diese Einstellung von pom.xml gesteuert wird. Die Lösung besteht entweder darin, das explizite Überschreiben der POM-Compiler-Plugin-Einstellung explizit zuzulassen (möglicherweise nicht sinnvoll, da dies dann geschieht, wenn Sie maven in der Befehlszeile verwenden) oder die Steuerelemente in der IDE zu deaktivieren, wenn diese Einstellung im POM wirksam ist.
Die Lösung besteht derzeit darin, die gewünschte Compiler-Ebene im Compiler-Plugin im POM, den Re-Import, festzulegen, anstatt zu versuchen, sie in den Moduleinstellungen festzulegen.
quelle
Ich aktualisiere ein Projekt von JDK 8 auf JDK 10+. Ich hatte die Compiler-Eigenschaften wie folgt korrekt angegeben:
Das Idea-Projekt würde jedoch das Sprachniveau weiterhin auf 8 zurücksetzen.
Schließlich stellte ich fest, dass der Maven-Importprozess von Idea JDK 8 zum Importieren des Projekts verwendete, wodurch das Sprachniveau auf <= 8 begrenzt wurde.
Um dies zu beheben, habe ich die Eigenschaft 'JDK für Importer' unter Einstellungen -> Erstellen, Ausführen, Bereitstellen -> Build-Tools -> Maven -> Importieren aktualisiert, um JDK 11 zu verwenden.
quelle
Es gibt zwei Möglichkeiten, dies zu tun: Fügen Sie eine davon in Ihre pom.xml-Datei ein:
Zuerst Eigenschaften hinzufügen
2. Add Plugin hinzufügen
Lassen Sie mich wissen, ob es hilft.
quelle
Keine der Lösungen hat in meinem Fall geholfen. Ich musste keine Java-Version in meinem angeben
pom.xml
.Ich musste die
<project-name>.iml
Datei öffnen und dort die JDK-Version ändern.Original:
Aktualisiert:
Das macht überhaupt keinen Sinn. Ich habe zu keinem Zeitpunkt eine JDK-Version für Java 1.5 angegeben.
quelle
Ich hatte große Probleme mit diesem Problem, da ich mit Dropwizard Microservices erstellt habe. Schließlich fand ich heraus, dass ich meine Build-Eigenschaften in der falschen POM- Datei hatte (der Hauptdienst
pom.xml
).Obwohl die anderen Pakete eher Bibliotheken ähneln , konnte ich die Java 8-Syntax nicht verwenden.
Als ich das Build-Plugin in die "globale"
.pom.xml
Datei umgestaltete , konnten alle untergeordneten Container die neue Syntax verwenden.Kann jemandem helfen, der Probleme mit Multi-Container-Projekten hat
quelle
Für mich funktionierte die Lösung, das POM (Plugins plus Eigenschaften) auf die erforderliche Java-Compiler-Version (in meinem Fall 1_7) zu aktualisieren. Da die IML-Datei für jedes Projekt mit dem Original-POM (mit der von jemandem oben erläuterten Standard-Compiler-Version 1_5) mit einer JDK-Version 1_5 erstellt wurde, überschreibt dies weiterhin die POM-Version.
Ich habe den .idea-Ordner manuell gelöscht und das Modul mit einem Reimport vom aktualisierten POM in IntelliJ importiert. Als ich das Modul aus dem aktualisierten POM erneut importierte, konnte ich feststellen, dass die IML-Dateien die aktualisierte JDK-Version hatten (in meinem Fall 1_7).
quelle
Es gab einen weiteren Schritt, den ich ausführen musste, zusätzlich zum Festlegen der Maven-Build-Eigenschaften , Hinzufügen des Maven-Compiler-Plugins und Ändern der Java-Version in der IML-Datei . (jeweils bereits in den anderen Antworten dokumentiert). Sie müssen auch die Compilerversion in den Einstellungen festlegen .
quelle