10

eclipse 3.5を使用して、新しいmavenプロジェクトを作成すると、m2eclipseは自動的にJ2SE1.4をライブラリに追加し、コンパイラーコンプライアンスレベルを1.4に追加します(プロジェクトプロパティ> Javaコンパイラー)。私のJREシステムライブラリは1.6で、デフォルトのコンパイラコンプライアンスレベルは1.6です。1.4もインストールしていません。m2eclipseにデフォルト設定を使用させ、プロジェクト設定が変更されないようにすることはできますか?

4

3 に答える 3

7

構成に従う必要があり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パラメーターのみを考慮します。

于 2010-06-13T16:11:51.620 に答える
4

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ではありません。

于 2010-06-13T16:10:56.080 に答える
0

要約する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

于 2018-01-17T12:08:06.120 に答える