2009-07-28 39 views
6

我正在研究应该与Java 5兼容的Java程序。我在已实现的接口方法上有@Override注解,这是在Java 6中允许的,但不是在5中。我使用Java 6 SDK。当我将其设置为5.0合规性时,Eclipse在@Override上正确提供了错误消息。我的Maven构建,但是,运行甚至没有警告,在我的POM使用以下设置: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> 

上午我在期待,这实际上应该使构建失败是否正确?为什么不呢,我能做些什么?

回答

5

这实际上是一个JDK问题,而不是Maven问题。 @Override注释不会失败,并将一个-source 1.5标志设置为1.6的javac。继续尝试。让它失败的唯一方法是,不幸的是,使用1.5 javac。

对不起,HTH。

编辑
我碰到这个问题我自己,我也想知道,如果它实际上看着POM中的设置。打开调试输出(-X我相信,不久前)将打印到标准输出的javac命令行,你会发现它确实使用了-source 1.5参数。

1

由于roe的回答说你需要使用1.5编译器,因为JDK没有做好它的工作。值得指出的是,你能避免与路径等搞乱有关tweaking the maven-compiler-plugin配置为使用特定的编译器:

<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> 
+0

好点。 – 2009-07-29 08:51:38

相关问题