2012-09-10 74 views
2

我把一些我們的項目到Maven項目,但M2E從改變我的.classpath JRE項:有什麼辦法可以防止m2e修改eclipse .classpath文件嗎?

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"> 
    <attributes> 
     <attribute name="maven.pomderived" value="true"/> 
    </attributes> 
</classpathentry> 

到:

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"> 
    <attributes> 
     <attribute name="maven.pomderived" value="true"/> 
    </attributes> 
</classpathentry> 

這導致了一些錯誤,如:

說明資源路徑位置類型訪問限制:類型 由於對的限制,WindowsPopupMenuSeparatorUI無法訪問所需的庫C:\ PROGRAM 文件\的Java \ jdk1.6.0_20 \ JRE \ LIB \ rt.jar的DottedJPopupMenuSeparator.java/acommons/src目錄/ COM/KS/acommons/GUI/LookAndFeel都行 10的Java問題

有什麼辦法可以讓m2e不生成.classpath文件,或強制它使用工作區默認的JDK?

+0

另請參閱:https://stackoverflow.com/questions/14804945/maven-build-path-specifies-execution-environment-j2se-1-5-even-though-i-chang –

回答

3

在我看來,Maven在這裏幫助你。它強制Eclipse使用嚴格的Java 1.6環境,並阻止您使用不屬於標準分發的庫。

通常,此錯誤消息暗示您應聲明新的Maven依賴項,而不是依賴(例如)JRE/lib/ext中存在的JAR文件。

+0

我傷了改變錯誤現在在Eclipse中發出警告,同時我與違規代碼的所有者合作。 – Jared

0

這是目前不可能的,但它可能是,如果m2e bug 405661是固定的。

從今天開始(m2e 1.5.0.20140606-0033),您只能配置m2e來保留額外的類路徑條目,但它總是會打開它自動生成的條目路徑條目。這包括JRE的類路徑條目,因此無法手動設置此條目並使其在m2e項目更新中存活。

0

您需要將Maven配置爲使用正確的JRE。

你在做什麼是你配置Eclipse來使用某個JRE,現在你期望Maven使用相同的。這不起作用,因爲Maven將使用POM(pom.xml)來確定要使用哪個JRE。這很有意義,因爲Maven是一個在Eclipse之外運行的命令行工具。 m2e只是將Eclipse配置爲在命令行中的行爲與Maven類似。正如你所看到的,Maven在這裏控制着,Eclipse不是!

爲了使兩項工作相互,你需要配置的Maven編譯器插件,像這樣:

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>1.8</source> <!-- JRE version that you need --> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 

會告訴Maven的你想要的JRE版本。現在,您可以在Eclipse首選項中配置匹配的JRE版本,m2e將配置Eclipse編譯器以使用具有正確版本的Eclipse編譯器。

相關問題