2016-06-13 3 views
0

내가 해봤 모두 MVN 설치 및 MVN 클린 설치하고 둘 다 동일한 오류 던져 :컴파일 오류 MVN -install

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" 
: 여기

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

내 환경의 정보가

maven이 Java 1.5에서는 실행되지만 1.8에서는 실행되지 않기 때문입니까? 그렇다면, maven이 사용하는 버전을 변경하는 방법이 있습니까?

답변

3

특정 Java 버전에서만 사용할 수있는 자바 기능을 사용하는 경우 당신은 당신이 mvn을 실행할 때 PATH에 있어야 당신의 pom.xml

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

적절한 JDK에 선언해야한다.

1.7 이상

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

변경 자바 버전 당신은

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

봄 부팅 프로젝트에서이 속성에서 버전을 대체 할 수 있습니다 치어의 버전을 대체 할 수 있습니다

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

귀하 java -version이 올바른 Java 8 버전을 반환했습니다. Java 버전 : 1.8.0 _77- 디버그, 공급 업체 : Oracle Corporation javac -version도 올바르게 반환되는지 확인하십시오. Java 버전 : 1.8.0_77-debug, 공급 업체 : Oracle Corporation.

+0

메이븐 컴파일러 플러그인 자바 1.5 사용에 소스 자바 버전을 사용해야합니다. – Seelenvirtuose

0

이것은 Linux와는 아무런 관련이 없습니다. 유일한 문제는 Java 7에서 소개 된 try-with-resource을 사용하고 있고, 기본적으로 maven이 1.5 스펙으로 자바 소스 코드를 컴파일하도록 구성되어 있다는 것입니다. 당신이 try-with-resource 기능을 사용해야하는 경우 @UUID가 지정한대로, 당신은 소스에서 사용하여 컴파일 maven-compiler-plugin을 구성하고 타겟팅 할 수 있습니다 1.7

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

아니, 메이븐은 자바 버전에서 실행할 수 있습니다 (I가의 버전을 모르는 Maven이 실행되지 않는 자바). 그러나 Maven이 컴파일 할 수있는 최대 버전은 Maven이 실행되고있는 Java 버전에 달려 있다고 생각합니다. 나는. Maven이 JDK 7에서 실행된다면, 소스와 타겟의 최대 버전은 Java 7이 될 것입니다.

+0

Maven 자체가 실행되는 Java 버전 (3.3.X의 경우 최소 1.7)과 컴파일/테스트 등에 사용할 수있는 기능이 없습니다. 이러한 목적으로 툴체인을 구성 할 수 있습니다. – khmarbaise

0

try-with-resources는 (는) Java 1.7에서만 사용할 수 있습니다. 이를 위해 당신이 지정되지 않은 경우 기본값으로> = 1.7 및 대상 버전> = 1.7 (즉> = $ 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> 
관련 문제