2015-02-13 8 views
46

Ich benutze Eclipse als IDE. Wenn ich mit der rechten Maustaste auf das Projekt klicke und dann auf "maven update" klicke, ändere meine Java Version auf 1.5. Hier ist, was ich bisher tat, folgte ich alle aufgeführten Schritte hierJava-Version automatisch zu Java 1.5 nach Maven Update

http://qussay.com/2013/09/13/solving-dynamic-web-module-3-0-requires-java-1-6-or-newer-in-maven-projects/

  1. I "Java Build-Pfad" auf "Arbeitsplatz Standard jre 1.8.0_25"
  2. geändert Then „Java-Compiler "1,8
  3. geändert Then "Projekt Facetten"> Java> 1.8
  4. Changed pom.xml Java-Version auf 1,8
<build> 
     <plugins> 
      <plugin> 
       <groupId>org.eclipse.jetty</groupId> 
       <artifactId>jetty-maven-plugin</artifactId> 
       <version>9.1.3.v20140225</version> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugin</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

Nach all dem, wenn ich auf "Maven update" klicke, ändert sich meine Java-Version automatisch auf 1.5. Auch in den obigen Schritten ändert sich die Version der ersten beiden Schritte automatisch auf 1,5. Wie kann ich das beheben?

Antwort

97

Öffnen Sie Ihre pom.xml-Datei und fügen Sie die folgenden Zeilen darauf:

<properties> 
    <maven.compiler.source>1.8</maven.compiler.source> 
    <maven.compiler.target>1.8</maven.compiler.target> 
</properties> 

Wo 1.8 die Java-Version des aktuellen JDK/JRE ist. Ein anderer Weg, dies zu tun, ist das Hinzufügen einer <build> mit der maven-compile-plugin als

<build> 
<plugins> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.2</version> <!-- or whatever current version --> 
    <configuration> 
     <source>1.8</source> 
     <target>1.8</target> 
    </configuration> 
    </plugin> 
</plugins> 
</build> 
+1

Ich denke, ich habe bereits den zweiten Weg gemacht und ich habe den Code auch gepostet. Sieh nicht, was du in diesem Code geändert hast – asdlfkjlkj

+0

Ja. Als ich geantwortet habe, hast du den Code nicht gepostet. Also, füge den ersten Teil meiner Antwort hinzu. Das Tag "Eigenschaften". Wenn Ihr POM bereits ein 'properties'-Tag hat, fügen Sie einfach die Tags hinzu, es sollte gut funktionieren. –

+4

Dies funktioniert nicht. – asdlfkjlkj

1

ich dieses Problem hatte. In meinem Fall die <Eigenschaften> Tag & geschachtelte Tags Jorge Campos oben erwähnt wurden an der falschen Stelle. Wenn ich sie zwischen die <Hostversion> und < Abhängigkeiten > Tags in der pom.xml-Datei legte, dann wurde dieses Verhalten gestoppt.

Das kann in Eclipse abgeholt werden, wenn die Validierung dieser Dateien eingeschaltet ist.

1

Ich begegne ähnlichen Problem auf einer meiner Team Mate-Maschine. Er benutzte die alte Version von Eclipse, ich glaube, er benutzte Keppler. Projekt nach der Aktualisierung ändern JRE-Version auf 1.5.

Einfache Aktualisierung Eclipse auf die neueste Version dieses Problem zu lösen.

+0

Ja, nein. Ich benutze Neon, meine Workspace-Einstellungen sind alle 1.8, aber wenn ich ein Maven-Projekt importiere (oder aktualisiere), besteht Eclipse darauf, J2SE-1.5 zu verwenden. – Antares42

+0

@ Antares42 können Sie von der Befehlszeile ohne Probleme erstellen? Welche m2e Version verwendest du? – user902383

+1

Ich kann über die Befehlszeile (oder besser "Ausführen als -> Maven Build ...") ohne Probleme bauen. Aber sobald ich "Maven -> Update-Projekt" mache, bekomme ich die erwähnten JRE-Bibliotheken und Eclipse kann das Projekt nicht erstellen. Ich kann trotzdem mit Maven bauen. Sobald ich eine '' maven.compiler.source'' Eigenschaft wie in einer Antwort oben erwähnt hinzufüge, funktioniert alles gut. Meine m2e Version ist 1.7.1-20161104-1805. – Antares42

-3

Ich habe Eclipse von Kepler auf Neon geändert und dann mein Projekt aktualisiert mit Maven -> Update Project.

1

Fügen Sie diese Zeilen zu Ihrer pom.xml hinzu, klicken Sie dann mit der rechten Maustaste auf Ihre JRE-Systembibliothek -> Eigenschaften -> Legen Sie die korrekte Ausführungsumgebung auf Java 1.8 oder Version fest, die Sie festlegen möchten.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.2</version> <!-- or whatever current version --> 
    <configuration> 
     <source>1.8</source> 
     <target>1.8</target> 
    </configuration> 
    </plugin> 
1

Die Wurzel-Ursache für dieses Problem ist, dass wenn aus irgendeinem Grunde Eclipse einen gültig Wert für die maven.compiler.source Eigenschaft nicht lösen kann beim Generieren/die .classpath Datei aus dem pom aktualisiert, wird es einfach den Standard zu verwenden org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5.

Wie fachmännisch beantwortet von @jorge-campos, gibt es mehrere Möglichkeiten, diese Eigenschaft festzulegen.

Allerdings, Jorge's Antwort nicht erscheinen für mich arbeiten. Hier waren meine Einstellungen:

<properties> 
    <javaVersion>1.8</javaVersion> 
    <maven.compiler.source>${java.version}</maven.compiler.source> 
    <maven.compiler.target>${java.version}</maven.compiler.target> 
</properties> 

...

Genau. ${java.version} ist nie gehen auf die (völlig andere) Eigenschaft javaVersion zu lösen und Eclipse ignoriert die Eigenschaft und verwendet den Standard.

Das bringt mich zurück zu der "aus irgendeinem Grund" Teil ich öffnete mit; Entwickler-Dummheit kann einer dieser Gründe sein.

Verwandte Themen