2013-11-22 12 views
15

Für die Entwicklung einer JavaFX-Anwendung verwende ich eine 4.3.1 snapshot of eclipse zusammen mit JDK 8 Build b116.Eclipse: JRE-Systembibliothek in Java Build-Pfad zurückgesetzt

the problem

Leider kann nur festgelegt werden, um temporäre, diese (bis zum nächsten Eclipse Neustart): In meinem Arbeitsbereich Projekte in den Build-Pfad der JRE Bibliothek Inklusion Java 1.4 die ganze Zeit erhalten resetted zurück

the temporary solution

In dem Build-Abschnitt meiner pom-Dateien ich habe:

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

Ich würde eine weniger volatile Lösung schätzen.

[UPDATE] Das Problem scheint mit den aktuellen Versionen von

  • Java 8 (1.8.0-ea-b121) festgelegt werden,
  • Maven (3.1.1/1.5.0.20131218 -0705),
  • m2e (1.5.0.20131218-1208) zusammen mit der
  • JDT Beta-Patch [Update site].
+0

ändern Sie die Java-Version in dem Projekt Facette bis 1,8. Vielleicht können Sie versuchen, die Eclipse zu starten, um Java 1.8 zu verwenden (ich glaube nicht, dass dies Auswirkungen haben wird). Pom.xml-Abhängigkeit sieht gut aus –

+0

@Jens konnten Sie dieses Problem beheben? Ich bin jetzt in der gleichen Situation mit Eclipse 4.3, Maven 3.2.1 und JDK 1.8.0b129. –

+0

@RAM: Ich aktualisiere meinen Post mit einigen Details über meine aktuellen (Arbeits) Versionen, hoffentlich hilft das. –

Antwort

2

Maven Eclipse-Plugin (M2e) wählt eine Java-Ausführungsumgebung auf den <source> und <target> Eigenschaften für den Compiler maven Plugin abhängig.

Das Problem ist, dass es in Kepler weder eine 1.8-Ausführungsumgebung noch den m2e maven Compiler-Konnektor gibt, der es noch abbilden kann.

So sehe ich zwei Lösungen, bis es in Kepler und M2e unterstützt:

  1. Let Maven die Umwelt zu 1.4 ändern und Anfahrtsplan Ihre 1.8 JDK auf die Ausführungsumgebung J2SE-1.4. Dann wird Ihr Projekt das richtige JDK verwenden. Aber dann werden alle Projekte, die auf 1.4 angewiesen sind, das 1.8 JDK natürlich verwenden.

  2. Verwenden Sie die pluginManagenent, um die maven-compiler-plugin Lebenszyklusbehandlung zu deaktivieren. Dies sollte verhindern, dass das m2e-Plugin die Ausführungsumgebung aktualisiert, und Sie können es manuell einstellen.

    <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

Danke für die umfassende Antwort.Es sieht so aus, als ob die zweite Option das Problem löst. Es beunruhigt mich nur ein wenig, dass das Projekt von Mavens * Updating * jetzt eine 'java.lang.NullPointerException \t bei org.eclipse.m2e.core.internal.lifecyclemapping.model.PluginExecutionFilter.match (PluginExecutionFilter.java:337)' 'wirft ... –

+1

Hmm, das war nicht das, was ich erwartet habe. Ich werde es später oder morgen anschauen. –

+1

Ich habe auch die NPE und aktualisierte meine Antwort. Die NPE sollte jetzt nicht mehr vorhanden sein und Sie sollten die Ausführungsumgebung weiterhin manuell festlegen können. –