專案編譯時出現:javacTask: 源發布版本 1.7 需要目標發布版本 1.7,顯然是 JDK 版本衝突導致。
File → Other Settings → Default Settings → Compiler → Java Compiler,在 Per-module bytecode version 新增模組,但 Choose Module 對話框為空,無法設定 Target bytecode version。
專案建立時將 Language Level 從 5 改為 7,後又改回 5 專案能編譯,但出現 @Override 註解錯誤(JDK 1.5 不支援介面方法的 @Override)。改回 7 後,重新 Import Maven 專案又自動變回 5,陷入循環。
Maven 編譯外掛預設版本為 1.5,覆蓋了 IDE 設定。每次重新導入 Maven 專案時,pom.xml 的配置會重置 Language Level。
在 pom.xml 的 <build><plugins> 區塊加入:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version> <!-- 建議使用較新版本,如 3.11.0 -->
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding> <!-- 建議額外指定編碼 -->
</configuration>
</plugin>
pom.xmlFile → Project Structure → Project → Project language level 顯示 7.0mvn clean compile 驗證命令列編譯正常properties 管理版本:<maven.compiler.source>1.8</maven.compiler.source>、<maven.compiler.target>1.8</maven.compiler.target>IDE 設定只影響本地開發環境,建構工具配置才是權威來源。Maven/Gradle 專案務必在建構腳本中明確宣告編譯版本,避免「本地能跑、CI 掛掉」的環境不一致問題。