簡體   English   中英

編譯版本 - eclipse,maven

[英]compiling down a version - eclipse, maven

我最近受到一些代碼的攻擊,這些代碼通過我們的部署周期而不會拋出任何編譯錯誤(我們認為)......

有問題的代碼是使用自Java 1.7以來的新靜態方法Integer.compare

服務器環境在Java 1.6上運行。 我們的開發環境安裝了Java 1.7。

我們的假設是將項目首選項設置為JavaSE-1.6合規性至少會給我們編譯有關代碼的警告,但是在eclipse中沒有可見的警告或錯誤。

項目>屬性> java編譯器> JDK合規性>在java構建路徑上使用來自執行環境“JavaSE-1.6”的合規性

其次,我們使用maven編譯最終部署。 pom明確指示遵守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>

但是,maven構建與問題代碼成功運行。

當代碼在早期的Jvm中不能正常編譯時,我怎么能告訴maven和eclipse失敗?

謝謝,保羅。

在開發環境中安裝java 1.6,然后在eclipse中右鍵單擊項目,轉到Properties-> Java Build Path。 轉到Libraries選項卡並刪除java 1.7 JRE,然后添加java 1.6 JRE。

我不太熟悉maven來回答這一半。

使用maven animal sniffer插件告訴您何時使用不向后兼容的API。 我還被告知Java 1.7有一個功能,但我沒有個人經驗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM