Tôi nhận được lỗi biên dịch khi biên dịch bằng maven nhưng hoạt động trong nhật thực. Cả hai đều sử dụng JDK cùng:Lỗi biên dịch maven sai (hoạt động trong nhật thực)
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"
Đây là lỗi:
[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]
Và đây là đoạn code (không có lỗi biên soạn trong eclipse):
Collection<? extends MessageGroup> collection = (Collection<? extends MessageGroup>) this.groupMap.values();
Tôi biết rằng điều này là một vấn đề khá đệ quy, tôi đã tìm thấy một vài bài viết yêu cầu giống nhau, nhưng có vẻ như không ai sửa lỗi. Một số người nói rằng làm việc với phiên bản JDK khác nhau. Tôi đã thử nghiệm với 1.6.0_30, 1.6.0_31, 1.6.0_32 và 1.6.0_35 và tất cả đều thất bại.
Bất kỳ ý tưởng nào?
Cảm ơn
Bạn có đang đặt phiên bản nguồn và đích của plugin trình biên dịch không? Xem http://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html – beny23
Có -> 1.6 –
Curro
Eclipse không sử dụng trình biên dịch từ JDK. Nó chỉ cần tham chiếu đến JDK cho các thư viện! Vì vậy, hoàn toàn có thể là trình biên dịch Maven chấp nhận một số mã trong khi trình biên dịch JDK (mà Maven sử dụng theo mặc định) thì không. Và hầu hết khi tôi nhìn thấy hai sự phân tán đó, trình biên dịch Eclipse là một trình biên dịch chuẩn. –