tôi gần đây đã cắn bởi một số mã làm cho nó thông qua chu trình triển khai của chúng tôi mà không ném bất kỳ lỗi biên dịch khi cần có (chúng tôi nghĩ) ...biên dịch xuống một phiên bản - nhật thực, maven
Mã này trong câu hỏi là sử dụng phương pháp tĩnh mới Integer.compare
là từ Java 1.7.
Môi trường máy chủ được chạy trên Java 1.6. Trong khi môi trường phát triển của chúng tôi đã cài đặt Java 1.7.
Giả định của chúng tôi là việc đặt các tùy chọn dự án thành tuân thủ JavaSE-1.6 ít nhất sẽ cho chúng tôi cảnh báo biên dịch trên mã được đề cập, tuy nhiên không có cảnh báo hoặc lỗi nào hiển thị trong nhật thực.
Project> properties> biên dịch java> Tuân JDK> Sử dụng phù hợp từ môi trường thực thi 'JavaSE-1.6' trên java xây dựng con đường
secondarily vào đó, chúng tôi sử dụng maven để biên dịch việc triển khai chính thức. POM được hướng dẫn rõ ràng tuân thủ trình biên dịch 1.6:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<optimize>true</optimize>
</configuration>
</plugin>
Tuy nhiên, việc xây dựng maven chạy thành công với mã sự cố.
Làm thế nào tôi có thể yêu cầu cả maven và nhật thực thất bại khi mã sẽ không hoạt động trong Jvm trước đây hơn là nó đang được biên dịch bởi?
Cảm ơn Paul.
Tôi nhớ rằng tôi đã phải đối mặt với tình huống tương tự trước đây (nhưng nó là 1,5 so với 1,6) nhưng tại thời điểm đó nó hoạt động như những gì bạn mong đợi. Tôi nghi ngờ nếu có bất kỳ lỗi trong JDK gây ra điều đó? –