2009-07-28 2 views
6

Java 5와 호환되어야하는 Java 프로그램에서 작업합니다. Java 6에서는 허용되는 구현 된 인터페이스 메소드에 대해 @Override 주석을 사용했지만 5에서는 사용할 수 없었습니다. Java 6 SDK를 사용합니다. Eclipse는 5.0 준수로 설정할 때 @Override에 오류 메시지를 올바르게 표시합니다. 나는이 실제로 빌드가 실패해야한다는 기대에 수정Maven은 컴파일러 플러그인의 <source> 태그를 정말로 존중합니까?

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <configuration> 
     <source>1.5</source> 
     <target>1.5</target> 
     </configuration> 
    </plugin> 

오전 : 내 메이븐 빌드는, 그러나, 내 POM에서 다음 설정을 사용하여, 심지어 경고없이 실행? 왜 그럴 수 없으며 내가 할 수있는 일이 있습니까?

답변

5

이것은 실제로 Maven 문제가 아닌 JDK 문제입니다. @Override 주석은 1.6 javac에 대한 -source 1.5 플래그로 실패하지 않습니다. 어서 시도해보십시오. 불행하게도 실패하게 만드는 유일한 방법은 1.5 javac를 사용하는 것입니다.

죄송합니다, HTH.

편집
나는이 문제를 자신으로 실행하고, 실제로 치어의 설정에서 찾고 있다면 나 또한 궁금해. 디버그 출력을 켜면 (-X 필자는 얼마 전부터) javac 명령 행을 표준 출력에 인쇄하고 실제로 -source 1.5 매개 변수를 사용하고 있음을 알 수 있습니다.

1

JDK가 제대로 작동하지 않기 때문에, 1.5 컴파일러를 사용해야한다는 답변이 나와 있습니다.

<plugins> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <configuration> 
     <verbose>true</verbose> 
     <fork>true</fork> 
     <executable>${JAVA_1_5_HOME}/bin/javac</executable> 
     <compilerVersion>1.5</compilerVersion> 
    </configuration> 
    </plugin> 
    ... 
</plugins> 

그런 다음 프로젝트의 컴파일러 나 Settings.XML의

<properties> 
    <JAVA_1_5_HOME>/path/to/1.5jdk</JAVA_1_5_HOME> 
</properties> 
의 경로를 지정할 수 있습니다 : 그것은 당신이 특정 컴파일러를 사용하는 tweaking the maven-compiler-plugin 구성에 등 경로에 대한 장난 방지 할 수 있습니다 지적 가치
+0

좋은 지적입니다. –

관련 문제