Eclipse:Java Build Path重置中的JRE系统库 [英] Eclipse: JRE System Library in Java Build Path reset

查看:258
本文介绍了Eclipse:Java Build Path重置中的JRE系统库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

开发JavaFX应用程序我正在使用]。

解决方案

maven eclipse插件(m2e)选择java执行环境取决于maven编译器插件的< source> < target> 属性。



问题是Kepler中既没有1.8执行环境,也没有m2e maven编译器连接器可以映射它。



因此我看到两个解决方案,直到它在Kepler和m2e中得到支持:


  1. 让maven将环境更改为1.4并将1.8 JDK映射到执行环境J2SE-1.4。然后您的项目将使用正确的JDK。但是依赖于1.4的所有项目当然都会使用1.8 JDK。


  2. 使用 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>



For developing a JavaFX application I'm using a 4.3.1 snapshot of eclipse together with JDK 8 build b116. In my workspace projects the JRE library inclusion in the build path get resetted back to Java 1.4 all the time:

Unfortunately, this can only be fixed temporary (until the next eclipse restart):

In the build section of my pom files I have:

<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>

I'd appreciate a less volatile solution.

[UPDATE] The issue seems to be fixed with the current versions of

  • Java 8 (1.8.0-ea-b121),
  • Maven (3.1.1/1.5.0.20131218-0705),
  • m2e (1.5.0.20131218-1208) together with the
  • JDT beta patch [Update site].

解决方案

The maven eclipse plugin (m2e) selects a java execution environment depending on the <source> and <target> properties for the maven compiler plugin.

The problem is that there is neither a 1.8 execution environment available in Kepler nor the m2e maven compiler connector can map it yet.

Thus I see two solutions until it is supported in Kepler and m2e:

  1. Let maven change the environment to 1.4 and map your 1.8 JDK to the execution environment J2SE-1.4. Then your project will use the correct JDK. But then all projects that depend on 1.4 will use the 1.8 JDK of course.

  2. Use the pluginManagenent to turn off the maven-compiler-plugin lifecycle handling. This should prevent the m2e plugin from updating the execution environment and you can set it manually.

    <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>
    

这篇关于Eclipse:Java Build Path重置中的JRE系统库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆