我工作的Java程序应该与Java5兼容。我在实现的接口方法上有@Override
注释,这在Java6中是允许的,但在5中不允许。我使用Java6SDK。当我将@Override
设置为5.0遵从性时,Eclipse会正确地给出错误消息。然而,我的Maven构建使用POM中的以下设置,运行时甚至没有任何警告:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
我认为这实际上会导致构建失败,这是正确的吗?为什么不呢,有什么我能做的吗?
发布于 2009-07-28 11:05:07
正如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>
https://stackoverflow.com/questions/1193184
复制相似问题