web-dev-qa-db-ja.com

Mavenコンパイルエラー

Netbeansでプログラムをビルドして実行すると、問題なく動作します。しかし、「mvn compile」を試行すると、同じpom.xmlファイルで次のエラーが発生します。

[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project hadoop-test: Compilation failure
[ERROR] /home/metin/NetBeansProjects/hadoop-test/src/main/Java/com/citusdata/hadoop/HadoopTest.Java:[53,8] error: generics are not supported in -source 1.3

私のJavaバージョンは1.3ではありません。ここでは "mvn -version"の結果

Apache Maven 3.0.4
Maven home: /usr/share/maven
Java version: 1.7.0_03, vendor: Oracle Corporation
Java home: /usr/lib/jvm/Java-7-openjdk-AMD64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.2.0-27-generic", Arch: "AMD64", family: "unix"

これは53行目です:

Token<BlockTokenIdentifier> token = locatedBlock.getBlockToken();
12
metdos

問題は、Maven2のmaven-compiler-pluginがデフォルトで-source 1.3およびtarget 1.3を使用することです。

これをpomに追加することで修正できます。

    <plugin>
      <groupId>org.Apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <configuration>
        <compilerVersion>1.5</compilerVersion>
        <source>1.5</source>
        <target>1.5</target>
      </configuration>
    </plugin>

これを最上位の親pomのpluginManagementセクションに配置して、派生pomがこれを気にする必要がないようにするのが現実的です。

21
Petr Kozelka

Pom.xmlにいくつかの情報を追加する必要があります。そんな感じ:

   <plugin>
        <groupId>org.Apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
             <source>1.6</source>
             <target>1.6</target>
        </configuration>
  </plugin>
5
Agemen

あなたのログには、次の行が表示されます:

generics are not supported in -source 1.3

Maven-compilerプラグインのソースとターゲットの構成を確認し、1.5に更新します。

1
Thinhbk

Mavenコンパイラプラグインのバージョンは1.3のようです。

このリンクを見て、コンパイラーを強制的にJDK 1.7で実行する http://maven.Apache.org/plugins/maven-compiler-plugin/examples/compile-using-different-jdk.html

0
Arham

EclipseからMaven Runを実行してから、コマンドプロンプトからmvn testを実行してください。私の場合、この手順ですべての問題が解決しました。

0
MukeshPandey

あなたのmaven Javaホームポイントはjdkではなくjreを指しているようです

Java home: /usr/lib/jvm/Java-7-openjdk-AMD64/jre

Jdkに変更する必要があります。

Java -versionを試して、何があるか確認してください

Javaバージョンを変更するには、/usr/sbin/alternatives --config Javaを使用します。

0
Suranga

これは、Eclipse Indigoで同じエラーを修正するための少し異なる方法です。

  • (maven)プロジェクトをEclipseで開きます。
  • pom.xmlを右クリック
  • ... Maven ... Add Pluginを選択します
  • 入る:

      - groupId: org.Apache.maven.plugins
      - artifactId: maven-compiler-plugin
      - version: 2.3.2
    

これにより、pom.xmlに新しいセクションが挿入され、編集用のウィンドウが開きます。

次に、上記のソースとターゲットのxml要素を追加して、正しいJREを選択できます。

セクションは私のプロジェクトでは次のようになります。

<build>
  <plugins>
     <plugin>
        <groupId>org.Apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
           <source>1.6</source>
           <target>1.6</target>
        </configuration>
     </plugin>
  </plugins>
</build>

他のいくつかの投稿にはない「ビルド」と「プラグイン」の追加タグに注意してください。

ファイルを保存すると、Eclipseはpomがプロジェクトと同期していないことを通知します。

次に、プロジェクトを右クリックします... Maven..updateプロジェクトを選択します

私にとって重要な洞察は、MavenがEclipseでビルドパスを自動的に再設定することでした。プロジェクト...ビルドパス..ビルドパス...ライブラリで確認できます。

つまり、Mavenプロジェクトを使用している場合、本質的には、Eclipseでビルドパスを直接設定する必要はありません。

HTH

0
windsor