2

mvn clean install を実行すると、以下のメッセージが表示されます

[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure

D:\data\work\extjs.parser\src\main\java\com\model\Component.java:[17,15] error:
generics are not supported in -source 1.3

could not parse error message:   (use -source 5 or higher to enable generics)
D:\data\work\extjs.parser\src\main\java\com\model\Container.java:14: error: gene
rics are not supported in -source 1.3
    private List<Component> items;

プロジェクトは単純なmavenプロジェクトですが、JAVA_HOMEをjdk1.7インストールパスに設定している場合、ジェネリックエラーでコンパイルされません

ただし、プラグインを追加すると正常に動作します。hava ホーム パスを明示的に設定する必要があるのはなぜですか。

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <showDeprecation>true</showDeprecation>
                <showWarnings>true</showWarnings>
                <executable>${env.JAVA_HOME}/bin/javac</executable>
                <fork>true</fork>
            </configuration>
        </plugin>

高度なありがとう...

4

3 に答える 3

1

ジェネリックは -source 1.3 ではサポートされていません

エラーメッセージは完全に明確です。ジェネリックがない -source 1.3 モードでコンパイルするようにコンパイラに指示しました。したがって、ジェネリックはありません。

于 2013-04-05T11:48:09.147 に答える
0

その古い質問。そして、しばらく待った後、私は答えを得ませんでした。ただし、maven コンパイラ プラグインのドキュメントを参照しているときに、プラグインにデフォルト設定があることがわかりました。以前のバージョンでは、ソース/ターゲットのデフォルトとして jdk 1.3 を使用していましたが、現在は 1.5 を使用しています。「mvn clean install -X」を実行して docs n を読んだ後、

  • Maven コンパイルの目標はとにかく内部的に maven-compiler-plugin を使用します
  • pom では、ビルド セクションで maven-compiler-plugin を指定することにより、ソース/ターゲットなどの特定の構成をオーバーライドできます。
  • 指定しない場合、maven は、そのバージョンに依存する「maven-compiler-plugin」自体によって指定されたデフォルトを使用します。

したがって、「maven-compiler-plugin」とその構成 (ソース/ターゲット) が pom で指定されないまでエラーが発生しました。

于 2017-04-28T22:47:40.043 に答える