maven的使用總結

一:maven中常用插件使用簡介

1: 編譯插件(maven-compiler-plugin)
如果不指定代碼要使用什麼樣的jdk版本編譯的話,它就會用maven-compiler-plugin默認的jdk版本來進行處理,這樣就容易出現版本不匹配的問題,以至於可能導致編譯不通過的問題.
例如:新建maven(3.0以上)項目,eclispe安裝的jdk是1.7,在使用maven-update後,顯示jdk變成了1.5,此時可以在pom中指定jdk,就可以解決此問題

方式一:

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source><!-- 源代碼使用的開發版本 -->  
                    <target>1.7</target><!-- 需要生成的目標class文件的編譯版本 -->  
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

方式二:

<maven.compiler.source>1.8</maven.compiler.source>    
  <maven.compiler.target>1.8</maven.compiler.target> 

注意:
1. source指的是源代碼可以使用的jdk版本特性,例如source指定1.8那麼就可以在代碼中使用Java8的特性:如Lambda等
2. target指的是編譯生成class文件的jdk版本,即運行環境需要的jdk版本
3. 一般而言target和source相同,但是有特例,例如:如果當前編碼環境上只有jdk1.7,但是最終部署環境只有jdk1.8,那麼就可以指定source = 1.7,target=1.8,但是總體而言 source <= target
例如:
在這裏插入圖片描述
在這裏插入圖片描述
現在,在代碼中使用jdk1.8的特性:給接口添加一個非抽象的方法實現,只需要使用 default關鍵字即可,這個特徵又叫做擴展方法
在這裏插入圖片描述 在這裏插入圖片描述
如果將source指定爲1.8以下,編碼使用1.8的特性
在這裏插入圖片描述
可以得出以下結論:
結論一: source指定的是源碼的版本特性
結論二: source > target 就會編譯報錯

如果指定source < target

編譯通過:
在這裏插入圖片描述
結論三: source和target可以不同,且source <= target

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章