2012-09-07 68 views
3

我正在使用Spring Tool Suite和m2e將我們現有的一些項目轉換爲Maven項目。有問題的項目使用jdk1.6.0_20,它在Eclipse中被命名爲[jdk1.6]。當我做Maven - > Update項目時,它會用標準的[JavaSE-1.6]替換那個jre。雖然他們似乎指向同一個庫,在名稱上的變化造成了一堆類似的異常:如何讓Maven使用Eclipse工作區默認的JRE?

訪問限制:該類型WindowsPopupMenuSeparatorUI不是 訪問由於所需庫C的限制:\ PROGRAM 文件\的Java \ jdk1.6.0_20 \ JRE \ LIB \ rt.jar的

我的pom.xml有這樣的:

<plugin> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.3.2</version> 
    <configuration> 
     <source>1.6</source> 
     <target>1.6</target> 
    </configuration> 
</plugin> 

有沒有什麼辦法讓Maven的/ M2E使用默認的工作空間,而不是JRE的將它替換爲.classpath中特定的一個?

回答

1

事實證明,似乎沒有辦法用Maven做到這一點。相反,我將錯誤更改爲Eclipse設置中的警告,同時我與違規代碼的所有者合作解決問題。

4
  1. 進入項目中的「配置構建路徑」並轉到「庫」選項卡。
  2. 刪除JRE系統庫
  3. 點擊「添加庫...」,然後選擇「工作區缺省JRE」

這會給你目前的JRE,而不是指定一個特定的JRE

+1

我確實選擇了它,但Maven在更新項目時更改了該屬性。它用特定的JRE取代了工作區默認設置。 – Jared

+0

嗯..然後檢查pom是否有編譯器級別的硬編碼引用。 –

2

添加Maven的編譯器插件到您的POM力的Maven使用Java的特定版本:

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.3</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

但是如果你有兩個JRE和JDK系統上安裝(特定的Java版本) ,maven可能會選擇jre,然後抱怨它需要JDK。在Eclipse中使用Maven>更新項目後可能會發生這種情況。

要解決此問題,請在Eclipse中右鍵單擊JRE System Library> Properties> Environments並選擇JavaSE-1.8。如果您的系統中有多個兼容JRE,請勾選jdk1.8.x>確定>選擇JavaSE-1.8(jdk1.8.x)作爲執行環境>確定

現在maven應該選擇Java版本1.8並且Eclipse會告訴maven使用jdk1.8作爲這個Java版本的默認JRE。

相關問題