2017-01-13 16 views
1

私のプロジェクトはSpring Framework 4.0.0 REALESEを使用していて、おそらくJDKバージョン1.5では動作していないので、SE 1.8に変更したいと思います。私はWebプロジェクトのJRE SystemライブラリをSE 1.5から1.8に更新しようとしました。しかし、Mavenからプロジェクトを更新した後、私のプロジェクトは自動的に古いバージョンに戻ります。どうすれば修正できますか?Mavenプロジェクト用のJREシステムライブラリを変更するにはどうすればよいですか?

+0

これは役立つかもしれないhttp://stackoverflow.com/questions/27037657/stop-intellij-idea-to-switch-java-language-level-everytime-the-pom-is-reloaded/27037879# 27037879 – vikingsteve

答えて

1

あなたの質問は非常に明確ではないので、私は、一般的に答える:あなたはJavaはMavenを開始するために使用するかを決める必要があり、すべての

まず。新しいMavenとPlugin Versionsには特定のバージョンが必要なため、これにはいくつかの意味があります。 IDEからmavenを起動した場合、上書きしない限り、IDEに使用されるJVMがmavenに使用されるため、これはさらに複雑になる可能性があります。

通常、このJava VMは何も実行しない場合、Javaコンパイラの実行にも使用されます。これにより、言語レベル、出力クラスバージョン、使用されたシステムライブラリが制御されます。しかし時には別のコンパイラが必要になることもあります(これを避けるべきですが、これを行うことができます)。この場合、コンパイルプラグイン(および他のもの)がforkモードを使用するように指定してから、Javaへのパスを指定するか、Toolchainを使用します(両方とも、SOに記載されています)

最後にコンパイラのsource level and target version settingsがあります。

これは、たとえば、プロジェクト(再読み込みのためにAlt + F5を使用)でEclipseが使用するソースレベルと「システムライブラリ」を管理します。 Eclipseはそれらをmaven-compiler-settingsから抽出します。通常、それらをPOMプロパティとして指定します。

最後に、あなたのプロジェクトやアプリケーションサーバーの起動に実際に使用されたJavaを忘れないでください。

+0

最初のお返事ありがとうございますが、POMファイルからの設定は私のためには機能しません。私のWebプロジェクトはJ2SE-1.5で動作しています。J2SE-1.8で動作します。どうすればいいですか: 私のプロジェクトを右クリックして、クラスパスを設定してください。その後、私は古いバージョンを削除し、新しいバージョンを追加します。しかし、Maven-> Updateプロジェクトを選択すると、私のプロジェクトは古いバージョンに戻ります。だから私が尋ねたいのは、プロジェクトを更新した後に変更したバージョンをどうやって維持するかということです。 –

+0

3.3.1から始まるMavenは、MavenがJava 6を必要とするJava 7とJava 5より前のJava 7が必要です。詳細はhttp://maven.apache.org/docs/history.htmlを参照してください。すべてのMavenプラグインは、Java 6.0が必要です。通常は、3.0.Xバージョンから始まります。プラグインの詳細については、適切なMavenプラグインページを参照してください。たとえば、[maven-install-plugin](http://maven.apache.org/plugins/maven-install-plugin/plugin-info.html)を参照してください。 – khmarbaise

+1

java 1を設定する場合。Eclipseの8システムライブラリでは、a)Eclipseが1.8環境を検出/認識し、 'maven.compiler.target'がPOMプロパティとして1.8に設定されていることを確認する必要があります。 Eclipseでリフレッシュした後、プロジェクトは正しいシステムライブラリを持つことになります。 (あなたが環境設定でそれを手書きで変更した場合は、次回POMをフリーズするときにそれを忘れるでしょう)。私は答えを広げた。これはもちろんMavenのプロジェクトタイプ、またはMaven Nature(私は思う)のようなものです。非Mavenプロジェクトの場合は、プロジェクト設定でjvmを切り替えてください。 – eckes

2

JDKを制御pom.xml私たちのプロジェクトでは以下の設定がコンパイル

<properties> 
    . . . 
    <maven.compiler.source>1.7</maven.compiler.source> 
    <maven.compiler.target>1.7</maven.compiler.target> 
    <maven.compiler.bootclasspath>C:\Program Files\Java\jdk1.8.0_101\jre\lib\rt.jar${path.separator}C:\Program Files\Java\jdk1.8.0_101\jre\lib\jsse.jar${path.separator}C:\Program Files\Java\jdk1.8.0_101\jre\lib\jce.jar</maven.compiler.bootclasspath> 
    . . . 
</properties> 

私たちのプロジェクトは、戦争の成果物であるために使用します。デプロイ後、アプリケーションサーバーの設定(ここではtomcat)によって、アプリケーションサーバーとアプリケーションが実行するJVMが決定されます。

(私たちの環境は少し特別である - 我々はJVM/JDK 8を使用するが、Java 1.7互換モードでそれらを使用します。このに従う必要はありません。。)

+0

おかげで、この答えは私が探しているものです、それは動作します。 –

+0

あなたは大歓迎です!私たちは皆互いから学びます。 – leeyuiwah

+0

もっと質問できますか? Mavenを使ってプロジェクトを作成するためのデフォルトのJDK 1.8を設定したいのですが、どうすればいいですか? –

1

あなたはこのようなコンパイラプラグインを設定することができます:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <configuration> 
     <source>1.8</source> 
     <target>1.8<target> 
    </configuration> 
</plugin> 
+0

もっと質問できますか? Mavenを使ってプロジェクトを作成するためのデフォルトのJDK 1.8を設定したいのですが、どうすればいいですか? –

関連する問題