我在使用maven编译但在eclipse中工作时出现编译错误。两者都使用相同的JDK:错误的maven编译错误(在eclipse中工作)
java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01, mixed mode)
mvn -version
Apache Maven 3.0.4
Maven home: /usr/share/maven
Java version: 1.6.0_35, vendor: Sun Microsystems Inc.
Java home: /usr/lib/jvm/jdk1.6.0_35/jre
Default locale: es_ES, platform encoding: UTF-8
OS name: "linux", version: "3.2.0-29-generic", arch: "amd64", family: "unix"
这是错误:
[ERROR] /blablabla.../myClass.java: [78,107] inconvertible types
[ERROR] found : java.util.Collection<java.lang.Object>
[ERROR] required: java.util.Collection<? extends org.springframework.integration.store.MessageGroup>
[ERROR] -> [Help 1]
这是代码(在Eclipse中没有编译错误):
Collection<? extends MessageGroup> collection = (Collection<? extends MessageGroup>) this.groupMap.values();
我知道,这是一个漂亮的递归问题,我发现了几个相同的帖子,但似乎没有人提供标准修正。有些人认为它适用于不同的JDK版本。我已经用1.6.0_30,1.6.0_31,1.6.0_32和1.6.0_35进行了测试,都失败了。
有什么想法?
谢谢
您是否正在设置编译器插件的源版本和目标版本?见http://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html – beny23
是 - > 1.6 –
Curro
Eclipse不使用来自JDK的编译器。它只需要引用图书馆的JDK!所以Maven编译器接受一些代码是完全可能的,而JDK编译器(Maven默认使用的)不支持。大多数时候,当我看到这两种不同时,Eclipse编译器就是符合标准的编译器。 –