1. 程式人生 > >Intellij idea Language level和Java Compiler版本自動變化問題

Intellij idea Language level和Java Compiler版本自動變化問題

概述

最近將Intellij Idea的版本升級之後,在對maven專案進行編譯或打包時,經常出現一大堆的錯誤,錯誤的提示基本上都是jdk版本不正確導致的語法錯誤。剛開始沒太留意,以為是預設配置沒有修改。於是把Settings中的Java Compiler和Project 
Settings中的Language level都改為自己使用的版本,比如jdk1.7,問題暫時得到解決。可是下次編譯或打包又會偶然出現同樣的問題(後來發現之所以偶然出現是因為對pom檔案改動才會出現)。

原因分析

經排查,原來是這個問題的根源在於maven的pom.xml檔案中未配置jdk版本導致。當未配置jdk版本時,一旦pom檔案發生變化,Java Compiler和Language level會自動變回到原來的預設1.5版本。

解決方案

在pom檔案中新增maven-compiler-plugin外掛,並指定jdk使用的jdk版本即可解決上面問題。maven-compiler-plugin的配置同時對Java compiler和Language level同時生效。 
配置內容如下:

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

本人現在使用的jdk7,因此配置1.7。遇到類似問題,可根據具體使用的jdk版本配置相應的版本號。