Eclipse: JRE System Library in Java Build Path reset

buildpath, eclipse, java, java-8, maven

Solution

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:

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.

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>

Problem

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

Original source

Related problems