Eclipse - Maven項目Update Project后jdk版本變成1.5


問題與分析

最近遇到個奇怪的問題,在Eclipse里對一個Maven項目進行Update Project(快捷鍵是 Alt+F5),原本jdk為1.8的項目忽然就變成了1.5,於是就報了一些錯誤。

我猜想可能跟Maven默認的jdk版本有關系,百度了下,確實如此,Maven項目如果不指定編譯的jdk版本,就會默認為jdk1.5。查了下項目的pom文件,里邊並沒有指定編譯的jdk版本,而Maven的配置文件settings.xml里也沒有指明jdk版本,所以當我Update Project后,這個Maven項目就會自動變成jdk1.5了。

解決方法

有兩種解決方法,一種是針對某個Maven項目而言,直接在pom文件中指明jdk版本;一種是全局設置,為所有Maven項目指明jdk版本。

在pom文件中指明jdk版本

在項目的pom.xml中的build節點里使用maven的編譯插件來指定jdk版本,項目中通常使用這種方法來指定,因為比較靈活,可以隨意指定版本,修改保存后即可生效。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
            <encoding>UTF-8</encoding>
            <source>1.8</source>
            <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

修改settings.xml文件

找到Maven的安裝路徑,打開conf\settings.xml,找到profiles節點,在該節點下添加一個profile節點:

<profile>
    <id>jdk-1.8</id>
    <activation>
    <jdk>1.8</jdk>
    <activeByDefault>true</activeByDefault>
    </activation>
    <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>
</profile>

使用這種方法的好處是所有Maven項目都會按照這里的jdk版本來編譯,當然如果在pom文件里也指定了jdk版本,則以pom里的為准。這種全局修改的方法必須要重啟Eclipse才有效果

個人建議就算是修改了全局配置,也要在每個Maven項目里指明jdk版本,這是種良好的規范,利於別人理解。

參考鏈接

  1. maven 修改默認的JDK版本
  2. Maven管理項目的時候 Update Project后jre變成1.5


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM