2016-06-13 9 views
0

Ich habe beide versucht mvn installieren und mvn sauber installieren und beide den gleichen Fehler werfen:Compilation Fehler bei der MVN -install

[Error] *dir/class.java* try-with-resources is not supported in -source 1.5 

Hier sind die Informationen meiner Umgebung:

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00) 
Maven home: /opt/maven 
Java version: 1.8.0_77-debug, vendor: Oracle Corporation 
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.77-0.b03.el6_7.x86_64-debug/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "linux", version: "2.6.32-431.23.3.el6.x86_64", arch: "amd64", family: "unix" 

Liegt es daran, dass die Maven auf Java 1.5 aber nicht 1.8 laufen? Wenn ja, gibt es eine Methode, um die Version zu ändern, die Maven verwendet?

Antwort

3

Wenn Sie Java-Funktionen verwenden, die aus einer bestimmten Java-Version verfügbar sind, sollten Sie es in Ihrem pom.xml

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

die entsprechende JDK sollte im PATH sein erklären, wenn Sie mvn laufen.

z.B.

JDK_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.77-0.b03.el6_7.x86_64-debug/ 
export PATH=${JDK_HOME}/bin:${PATH} 
mvn <your_maven_parameters> 
0

ändern Java-Version 1.7 oder höher

können Sie Version in pom außer Kraft setzen

 <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 

Im Frühjahr-Boot-Projekt, das Sie Version in Eigenschaften

<properties> 
    <java.version>1.8</java.version> 
</properties> 
-1

Ihre außer Kraft setzen kann Java-Version hat eine korrekte Java 8-Version zurückgegeben, Java-Version: 1.8.0 _77-debug, Anbieter: Oracle Corporation Stellen Sie sicher, dass Sie über Java-Version verfügen, die ebenfalls korrekt zurückgibt Java-Version: 1.8.0_77-debug, Hersteller: Oracle Corporation.

+0

Das Maven Plugin Compiler verwendet Java 1.5 als Standard zu verwenden, wenn nicht angegeben. – Seelenvirtuose

0

Das hat nichts mit Linux zu tun. Das einzige Problem, das Sie haben, ist, dass Sie try-with-resource verwenden, das von Java 7 eingeführt wurde und standardmäßig maven konfiguriert ist, um Java-Quellcode mit 1.5-Spezifikation zu kompilieren. Wenn Sie try-with-resource Funktion verwenden müssen, wie @UUID angegeben, können Sie maven-compiler-plugin konfigurieren an der Quelle zu kompilieren mit und Ziel 1,7

Is it because that the maven run on java 1.5 but not 1.8?

Nein, Maven können auf jeder Java-Version laufen (Ich weiß nicht, welche Version von Java, dass Maven nicht läuft). Ich denke jedoch, dass die maximale Version, die Maven kompilieren kann, von der Java-Version abhängt, auf der Maven läuft. I.e. Wenn Ihr Maven auf JDK 7 läuft, wäre die maximale Version von Quelle und Ziel auch Java 7.

+0

Die Version von Java, in der Maven selbst läuft (Minimum 1.7 für 3.3.X), hat nichts zu tun, was zum Kompilieren/Testen usw. verwendet werden kann. Für solche Zwecke können Sie Toolchain konfigurieren. – khmarbaise

0

try-with-resources ist nur von Java 1.7 verfügbar. Dafür benötigen Sie Source-Java-Version> = 1.7 und Zielversion> = 1,7 (d> = $ source.version)

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.1</version> 
     <configuration> 
     <source>1.7</source> 
     <target>1.7</target> 
     </configuration> 
</plugin> 
Verwandte Themen