2013-11-22 22 views
15

Per lo sviluppo di un'applicazione JavaFX sto usando un 4.3.1 snapshot of eclipse insieme a JDK 8 Build B116. Nel mio lavoro progetti biblioteca inclusione JRE nel percorso di generazione ottenere resettato di nuovo a Java 1.4 per tutto il tempo:Eclipse: JRE Sistema Bibliotecario in Java Build Path azzerato

the problem

Purtroppo, questo può essere risolto solo temporaneamente (fino al prossimo riavvio eclisse):

the temporary solution

Nella sezione di generazione dei miei file pom ho:

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

Gradirei una soluzione meno volatile.

[UPDATE] Il problema sembra essere risolto con le versioni attuali di

  • Java 8 (1.8.0-ea-B121),
  • Maven (3.1.1/1.5.0.20131218 -0705),
  • M2E (1.5.0.20131218-1208) insieme al
  • JDT beta patch di [Update site].
+0

cambiare la versione di Java nel progetto sfaccettatura a 1,8. Può essere che tu possa provare a lanciare l'eclissi per usare java 1.8 (non credo che questo abbia alcun impatto). La dipendenza di Pom.xml sembra soddisfacente –

+0

@Jens sei riuscito a risolvere questo problema? Ora mi trovo nella stessa situazione con Eclipse 4.3, Maven 3.2.1 e JDK 1.8.0b129. –

+0

@RAM: aggiorno il mio post con alcuni dettagli sulle mie attuali versioni (funzionanti), sperando che ciò sia d'aiuto. –

risposta

2

l'esperto eclisse plug (M2E) seleziona un ambiente di esecuzione Java seconda delle <source> e <target> proprietà per il plug Maven compilatore.

Il problema è che non v'è né un ambiente di esecuzione 1.8 disponibile Keplero né connettore compilatore M2E Maven può mappare ancora.

Così vedo due soluzioni fino a quando non è supportato in Keplero e M2E:

  1. Let esperto di modificare l'ambiente a 1,4 e 1,8 sulla mappa il tuo JDK per l'ambiente di esecuzione J2SE-1.4. Quindi il tuo progetto utilizzerà il JDK corretto. Ma poi tutti i progetti che dipendono da 1.4 useranno il JDK 1.8 ovviamente.

  2. Utilizzare pluginManagenent per disattivare la gestione del ciclo di vita maven-compiler-plugin. Questo dovrebbe impedire al plugin m2e di aggiornare l'ambiente di esecuzione ed è possibile impostarlo manualmente.

    <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

Grazie per la risposta completa.Sembra che la seconda opzione risolva il problema. Mi preoccupa un po ', che Mavens * Updating Project * ora lancia un 'java.lang.NullPointerException \t su org.eclipse.m2e.core.internal.lifecyclemapping.model.PluginExecutionFilter.match (PluginExecutionFilter.java:337)' ... –

+1

Hmm, non era quello che mi aspettavo. Ne darò un'occhiata più tardi o domani. –

+1

Ho anche ricevuto l'NPE e ho aggiornato la mia risposta. L'NPE dovrebbe essere scomparso ora e dovresti comunque essere in grado di impostare manualmente l'ambiente di esecuzione. –

Problemi correlati