簡體   English   中英

為什么 Maven 會生成此錯誤:“...在 -source 1.5 中不受支持”?

[英]Why is Maven generating this error: “…is not supported in -source 1.5”?

今天早上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 會突然開始行為不端並需要使用編譯器插件。

這很可能是您的環境問題,而不是 maven(即,您的 JAVA_HOME 環境變量已更改)。 值得注意的是,無論如何都需要編譯器插件。 通過在 pom 中包含此編譯器部分,您可以確保使用正確的編譯器編譯您的代碼,而不管您的環境設置如何。

默認的源/目標級別是 1.5,這顯然不支持 Java 1.7 語法。

至於為什么它會“突然”改變,你的 m2e 或項目配置發生了一些變化。

您還可以通過為 Eclips 用戶使用以下步驟來解決此問題,並且也適用於 IntelliJ -

右鍵單擊項目並選擇Buid Path 然后Configure Build Path.. 在Maven 下選擇Project Facets。 然后選擇Java版本為1.8並應用確定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM