2011-12-11 49 views
0

Java的編譯版本,我有一段代碼,已編譯Java版本1.5(源和目標設定爲1.5 Maven的編譯插件)使用與Maven

<source>1.5</source> 
<target>1.5</target> 

我現在想做什麼是將它們編譯爲一個應用程序(源代碼是主應用程序的插件),它已升級到java版本1.6

在這種情況下,

我需要使用編譯插件的參數;

<source>1.5</source> 
<target>1.6</target> 

<source>1.6</source> 
<target>1.6</target> 

加;我是否需要將java主頁和路徑設置爲java 1.6或插件將使用正確的工件(可能會通過下載)編譯爲java 1.6?

問候..

+0

你意識到編譯1.5源會工作得很好java的1.6? –

+0

插件fw中有一些界面變化。所以我想編譯它與1.6 會有使用問題; 1.5 1.6

回答

1

首先,您不必絕對必須在Java 1.6上重新編譯。使用Java 1.5編譯的Maven工件在由Java 1.6平臺上運行的Java 1.6應用程序使用時可能會正常工作。

如果你確實想重新編譯,那麼兩個組合都應該可以工作。事實上,由於Java 1.5和1.6之間的語言沒有相關的變化,因此它們的意圖和目的完全相同。但是,編譯和運行Java 1.6上的單元測試是有價值的......以防萬一某些庫更改導致您的代碼在新平臺上失敗。

+0

非常感謝你斯蒂芬。我想我會使用1.6; 1.6組合並檢查錯誤。 問候.. –

0

你應該使用Java 1.6中的JAVA_HOME,如果你使用的目標/源1.5,應與1.6運行你的插件應該運行。除非您使用Java 1.6的特定內容(例如String.isEmpty())...

0

始終設置源和目標在你的pom.xml文件

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <maven.compiler.source>1.7</maven.compiler.source> 
    <maven.compiler.target>1.8</maven.compiler.target> 
</properties>