1. 程式人生 > >防止每次update maven 自動更新為1.5 方法

防止每次update maven 自動更新為1.5 方法

Maven專案在Update Maven之後JRE被改成1.5的解決方法

一、Maven Update 後 JDK變成1.5

在Eclipse中新建了一個Maven工程、然後更改JDK版本為1.7或者以上、結果每次使用Maven > Update project的時候JDK版本都恢復成1.5。

二、JDK1.5原因分析

後來查了一下原因、Maven官方文件有如下描述: 
譯器外掛用來編譯專案的原始檔從3.0版本開始、用來編譯Java原始檔的預設編譯器是javax.tools.JavaCompiler (如果你是用的是java 1.6)、如果你想強制性的讓外掛使用javac、你必須配置外掛選項 forceJavacCompilerUse

同時需要注意的是目前source選項和target 選項的預設設定都是1.5、與執行Maven時的JDK版本無關、如果你想要改變這些預設設定、可以參考 Setting the -source and -target of the Java Compiler中的描述來設定 source 和target 選項

這是Maven已知的一個特性。除非在你的POM檔案中顯示的指定一個版本,否則會使用編譯器預設的source/target版本1.5、主要還是在於Eclipse中Maven的整合方式起到了關鍵作用、它會從POM檔案中生成專案的.project,.classpath以及.settings、因此除非POM檔案指定了正確的JDK版本、否則你每次更新專案配置的時候它都會重置到1.5版本

三、JDK1.8解決方案

在pom.xml檔案中增加如下配置

</project>
    <build>
        <finalName>income</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

有了如上配置、在每次更新之後專案的java版本就會是java 1.7了、所有的誤報錯也就隨之消失了。

第二種方法

這個需要把專案開啟,找到如圖所示:.settings資料夾


  開啟org.eclipse.wst.common.project.facet.core.xml 這個檔案,如圖:


  將 <installed facet="jst.web" version="3.0"/>的version的值改為3.0(報錯的是什麼版本,改成相應的版本即可)。