eclipse 3.5を使用して、新しいmavenプロジェクトを作成すると、m2eclipseは自動的にJ2SE1.4をライブラリに追加し、コンパイラーコンプライアンスレベルを1.4に追加します(プロジェクトプロパティ> Javaコンパイラー)。私のJREシステムライブラリは1.6で、デフォルトのコンパイラコンプライアンスレベルは1.6です。1.4もインストールしていません。m2eclipseにデフォルト設定を使用させ、プロジェクト設定が変更されないようにすることはできますか?
3 に答える
構成に従う必要がありmaven-compiler-plugin
ます。
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
[...]
</build>
(このスレッドで述べたように、aspect-jでは機能しない場合でも)
このスレッドは、Eclipse内のm2eclipseとMavenスクリプトの違いを思い出させてくれます。
これは、m2eclipseがpom.xmlの構成に従ってJDT、AJDT、WTPなどのEclipseツールを構成している場合の「開発モード」にのみ適用されることに注意してください。これは、通常、アプリケーションのコーディングとデバッグ、単体テストの実行(Run as ... / JUnit testを使用)、またはWebアプリサーバーでの実行(Run as ... / Server app)の方法です。
ただし、Run as ... / Maven build ...を使用するか、Run / Debugメニューから対応する起動構成を作成する場合、Mavenの起動に使用されるJVMを選択でき、すべてのコンパイラ構成が同じように尊重されます。コマンドラインで尊重される方法。
それで:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<verbose>true</verbose>
<fork>true</fork>
<executable><!-- path-to-javac --></executable>
<compilerVersion>1.3</compilerVersion>
</configuration>
</plugin>
</plugins>
m2eは外部Javaコンパイラを使用しない(そして使用できない)ため、これらの構成パラメータを無視します。m2は、ソース/ターゲットのmaven-compiler-pluginパラメーターのみを考慮します。
JDKコンプライアンスレベルは、Mavenプロジェクトから派生したものであり、その逆ではありません。つまり、1.6レベルに準拠するようにMavenコンパイラプラグインを構成する必要があります。そうすると、m2eclipseはEclipseで適切な設定を取得します。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
これpom.xml
はマスターであり、m2eclipseではありません。
要約するmvn eclipse:eclipse
と、EclipseでプロジェクトとプロジェクトのF5リフレッシュを実行しました。これにより、Javaコンプライアンス設定が正しく構成されました。
私のセットアップは次のとおりです。Keplerを使用します。Eclipseの設定でデフォルトとして構成されたJava1.7(すでに述べたように、pom.xmlにあるものを尊重して、とにかく無視されるようです)。たくさんのMavenプロジェクトをEclipseにインポートしました。すべてがJava準拠レベル1.4として表示され、プロジェクトのビルドパスでさえJava1.4ランタイムがリストされています。コマンドラインで有効なpomを要求して、設定がpomに存在し、正しいことを確認することで、pom.xmlで1.7が正しく指定されていることを再確認しました。
mvn help:effective-pom -Doutput=eff.xml
これは、正しい設定が存在することを示しています。
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
問題がm2eプラグインのインポート部分にあると推測すると、Eclipseで表示されるバージョンは次のとおりです。1.4.0.20130601-0317