2013-11-22 43 views
15

對於開發JavaFX應用程序,我將4.3.1 snapshot of eclipse與JDK 8 build b116一起使用。 在我的工作區項目JRE庫包含在構建路徑得到重置了回Java 1.4的所有時間:Eclipse中的JRE系統庫構建路徑重置

the problem

不幸的是,這隻能是固定的臨時(直到下一次日食重啓):

the temporary solution

在我的POM文件生成第一節有:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.1</version> 
    <configuration> 
     <source>1.8</source> 
     <target>1.8</target> 
     <debug>true</debug> 
     <debuglevel>source,lines</debuglevel> 
    </configuration> 
</plugin> 

我會欣賞一個不太穩定的解決方案。

[UPDATE]這個問題似乎是固定的與

  • 爪哇8(1.8.0-EA-B121)的當前版本,
  • 的Maven(3.1.1/1.5.0.20131218 -0705),
  • m2e(1.5.0.20131218-1208)連同
  • JDT beta補丁[Update site]。
+0

改變Java版本在項目方面,以1.8。可能你可以嘗試運行eclipse來使用java 1.8(我認爲這不會有任何影響)。 Pom.xml依賴看起來很好 –

+0

@Jens你能解決這個問題嗎?我現在和Eclipse 4.3,Maven 3.2.1和JDK 1.8.0b129一樣。 –

+0

@RAM:我更新我的帖子,關於我目前的(工作)版本的一些細節,希望有幫助。 –

回答

2

maven eclipse插件(m2e)根據maven編譯器插件的<source><target>屬性選擇Java執行環境。

問題是在開普勒既沒有1.8的執行環境,也沒有m2e maven編譯器連接器可以映射它。

因此我看到了兩個解決方案,直到它支持開普勒和M2E:

  1. 讓行家環境的變化,以1.4和1.8的JDK映射到執行環境J2SE-1.4。然後你的項目將使用正確的JDK。但是所有依賴於1.4的項目當然會使用1.8 JDK。使用pluginManagenent關閉maven-compiler-plugin生命週期處理。這應該會阻止m2e插件更新執行環境,並且可以手動進行設置。

    <pluginManagement> 
        <plugins> 
         <plugin> 
          <groupId>org.eclipse.m2e</groupId> 
          <artifactId>lifecycle-mapping</artifactId> 
          <version>1.0.0</version> 
          <configuration> 
           <lifecycleMappingMetadata> 
             <pluginExecutions> 
              <pluginExecution> 
               <pluginExecutionFilter> 
                 <groupId>org.apache.maven.plugins</groupId> 
                 <artifactId>maven-compiler-plugin</artifactId> 
                 <versionRange>[1.0.0,)</versionRange> 
                <goals> 
                 <goal>compile</goal> 
                </goals> 
               </pluginExecutionFilter> 
               <action> 
                 <ignore /> 
               </action> 
              </pluginExecution> 
             </pluginExecutions> 
           </lifecycleMappingMetadata> 
          </configuration> 
         </plugin> 
        </plugins> 
    </pluginManagement> 
    
+0

感謝您的全面回答。看起來第二個選項解決了這個問題。它只是讓我擔心一點,Mavens *更新項目*現在在org.eclipse.m2e.core.internal.lifecyclemapping.model.PluginExecutionFilter.match(PluginExecutionFilter.java:337)拋出一個'java.lang.NullPointerException \t' ... –

+1

嗯,那不是我所期望的。我會在晚些時候或明天再看看它。 –

+1

我也得到了NPE並更新了我的答案。 NPE現在應該消失,你仍然應該能夠手動設置執行環境。 –