Ich erhalte einen Kompilierungsfehler, wenn ich mit Maven kompiliere, aber in Eclipse funktioniert. Beide sind mit dem gleichen JDK:Falscher Maven-Kompilierungsfehler (funktioniert in 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"
Dies ist der Fehler:
[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]
Und dies ist der Code (kein Übersetzungsfehler in Eclipse):
Collection<? extends MessageGroup> collection = (Collection<? extends MessageGroup>) this.groupMap.values();
Ich weiß, dass diese ist ein ziemlich rekursives Problem, ich habe ein paar Posts gefunden, die dasselbe fragen, aber es scheint, dass niemand eine Standar-Lösung hat. Manche Leute sagen, dass es mit verschiedenen JDK-Versionen funktioniert. Ich habe mit 1.6.0_30, 1.6.0_31, 1.6.0_32 und 1.6.0_35 getestet und alle scheitern.
Irgendeine Idee?
Dank
Setzen Sie die Quell- und Zielversion des Compiler-Plugins? Siehe http://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html – beny23
Ja -> 1,6 –
Curro
Eclipse-nicht die Verwendung Compiler aus dem JDK. Es benötigt nur den Verweis auf das JDK für die Bibliotheken! Es ist also durchaus möglich, dass der Maven-Compiler etwas Code akzeptiert, während der JDK-Compiler (den Maven standardmäßig verwendet) dies nicht tut. Und meistens, als ich sah, dass diese beiden auseinander gingen, war der Eclipse-Compiler der standardkonforme. –