web-dev-qa-db-ja.com

Eclipse:JRE System Library in Java Build Path reset

JavaFXアプリケーションの開発には、JDK 8ビルドb116とともに 4.3.1 Eclipseのスナップショット を使用しています。私のワークスペースプロジェクトでは、ビルドパスに含まれるJREライブラリが常にJava 1.4にリセットされます:

the problem

残念ながら、これは一時的にしか修正できません(次のEclipseの再起動まで):

the temporary solution

私のpomファイルのビルドセクションには次のものがあります:

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

揮発性の低いソリューションをいただければ幸いです。

[UPDATE]この問題は、現在のバージョンで修正されているようです

  • Java 8(1.8.0-ea-b121)、
  • Maven(3.1.1/1.5.0.20131218-0705)、
  • m2e(1.5.0.20131218-1208)と一緒に
  • JDTベータパッチ[ 更新サイト ]。
15
Jens Piegsa

Maven Eclipseプラグイン(m2e)は、mavenコンパイラプラグインの<source>および<target>プロパティに応じてJava実行環境)を選択します。

問題は、Keplerで利用可能な1.8実行環境も、m2e mavenコンパイラコネクタもまだマッピングできないことです。

したがって、ケプラーとm2eでサポートされるまで、2つのソリューションがあります。

  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>
    
2
René Link