Подтвердить что ты не робот

Почему Maven генерирует эту ошибку: "... не поддерживается в источнике 1,5"?

Сегодня утром Maven начинает жаловаться на эту ошибку:

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

Как ни странно, я использую JDK 7, и этот код строится отлично в течение нескольких недель. Я просто использую m2e со значением по умолчанию POM без указанных версий компилятора.

Здесь моя информация о версии 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 внезапно начал плохо себя вести и потребовал использования плагина компилятора.

4b9b3361

Ответ 1

Скорее всего, это проблема с вашей средой, а не с maven (т.е. измененная переменная среды JAVA_HOME). Стоит отметить, что плагин компилятора необходим в любом случае. Включив этот раздел компилятора в ваш pom, вы гарантируете, что ваш код будет скомпилирован с правильным компилятором, независимо от ваших настроек окружающей среды.

Ответ 2

По умолчанию исходные/целевые уровни равны 1,5, что явно не поддерживает синтаксис Java 1.7.

Что касается того, почему это "внезапно" изменилось, что-то изменилось в вашей конфигурации m2e или проекта.