25

今朝、Maven は次のエラーで不平を言い始めます。

error: multi-catch statement is not supported in -source 1.5

奇妙なことに、私は JDK 7 を使用していますが、このコードは何週間も問題なくビルドされています。コンパイラのバージョンが指定されていないデフォルトのPOMでm2eを使用しています。

これが私のMavenバージョン情報です:

Apache Maven 3.0.2 (r1056850; 2011-01-08 19:58:10-0500)
Java version: 1.7.0_03, vendor: Oracle Corporation
Java home: C:\SDKs\Java\jdk1.7.0_03\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"

Maven コンパイラ プラグインを次のように使用することで回避できます。

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>

それでも、Maven が突然誤動作を開始し、コンパイラ プラグインの使用が必要になる理由を理解したいと思います。

4

3 に答える 3

13

デフォルトのソース/ターゲット レベルは 1.5 で、明らかに Java 1.7 構文をサポートしていません。

「突然」変更される理由については、m2e またはプロジェクト構成で何かが変更されました。

于 2012-05-14T15:53:47.867 に答える
13

ほとんどの場合、これは Maven ではなく環境の問題です (つまり、JAVA_HOME 環境変数が変更されました)。とにかくコンパイラプラグインが必要であることは注目に値します。このコンパイラ セクションを pom に含めることで、環境設定に関係なく、コードが正しいコンパイラでコンパイルされるようになります。

于 2012-05-14T15:36:11.893 に答える