Eclipse: libreria di sistema JRE in Java Build Path reset


Per lo sviluppo di un'applicazione JavaFX sto usando una 4.3.1 snapshot di eclipse insieme a JDK 8 build b116. Nei miei progetti workspace l'inclusione della libreria JRE nel percorso di compilazione viene reimpostata su Java 1.4 tutto il tempo:

problema

Sfortunatamente, questo può essere risolto solo temporaneamente (fino al prossimo riavvio di eclipse):

la soluzione temporanea

Nella sezione build 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>

Apprezzerei un meno volatile soluzione.

[UPDATE] Il problema sembra essere stato risolto con le versioni correnti 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
  • Patch beta JDT [ Sito di aggiornamento ].
Author: Cœur, 2013-11-22

1 answers

Il plugin maven eclipse (m2e) seleziona un ambiente di esecuzione java in base alle proprietà <source> e <target> per il plugin del compilatore maven.

Il problema è che non c'è né un ambiente di esecuzione 1.8 disponibile in Kepler né il connettore del compilatore m2e maven può ancora mapparlo.

Quindi vedo due soluzioni fino a quando non è supportato in Kepler e m2e:

  1. Lascia che maven cambi l'ambiente in 1.4 e associ il tuo 1.8 JDK all'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 ovviamente 1.8 JDK.

  2. Utilizzare pluginManagenent per disattivare la gestione del ciclo di vita maven-compiler-plugin. Ciò 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>
    
 2
Author: René Link, 2013-11-24 12:29:33