POM :文件名稱是pom.xml , pom翻譯過來叫做項目對象模型,maven把一個項目當做一個模型使用 ...
maven 思維導圖:
ps:資料出處 --- 動力節點資料廣場
筆記第一部分:
1、傳統開發項目的問題(沒有使用maven管理的項目):
1)很多模塊之間有關係,手工管理關係,比較繁瑣。
2)需要很多第三方功能,需要很多jar文件,需要手工從網路中獲取各個jar 文件。
3)需要管理jar的版本, 需要的是mysql.5.1.5.jar ,那就不能隨便找一個 mysql 版本。
4)管理jar文件之間的依賴, 你的項目要使用 a.jar,而 a.jar 需要使用 b.jar 裡面的類。所以必須首先獲取到 b.jar 才可以使用 a.jar。
a.jar需要b.jar這個關係叫做依賴,或者你的項目中要使用mysql的驅動, 也可以叫做項目依賴mysql驅動
2、maven 管理項目的優點:
1)maven可以幫助管理jar文件,管理你需要的jar版本。
2)自動下載jar和它的文檔,源代碼。
3)管理jar之間的依賴,a.jar需要b.jar ,maven會自動下載b.jar。
4)幫你編譯程式,把java編譯為class。
5)幫你測試你的代碼是否正確。
6)幫你打包文件,形成jar文件,或者war文件。
7)幫你部署項目。
3、項目的構建:
構建是面向過程的,就是一些步驟,完成項目代碼的編譯,測試,運行,打包,部署等等。
maven支持的構建包括有:
1)清理, 把之前項目編譯的東西刪除掉,為新的編譯代碼做準備。
2)編譯, 把程式源代碼批量地編譯為執行代碼, java ---> class文件
maven可以同時把成千上百的文件編譯為class;javac一次編譯一個文件。
3)測試, maven可以執行測試程式代碼,驗證你的功能是否正確。
批量的,maven同時執行多個測試代碼,同時測試很多功能。
4)報告, 生成測試結果的文件, 測試通過沒有。
4、maven核心概念:
①POM :文件名稱是pom.xml , pom翻譯過來叫做項目對象模型,maven把一個項目當做一個模型使用。
②約定的目錄結構 :maven項目的目錄和文件的位置都是規定的。
③坐標 :一個唯一的字元串,用來表示資源的。
④依賴管理 :管理你的項目可以使用jar文件
⑤倉庫管理(非重點) :資源存放的位置
⑥生命周期(非重點) :maven工具構建項目的過程,就是生命周期。
⑦插件(非重點):執行maven構建的時候用的工具是插件。
筆記第二部分:
1、maven約定的目錄結構:
maven 項目根目錄/
---/src
------------/main 【主程式java代碼和配置文件】
---------------------/java 【程式包和包中的java文件】
---------------------/resources 【java程式中要使用的配置文件】
------------/test 【測試程式代碼和文件(可以沒有)】
---------------------/java 【測試程式包和包中的java文件】
---------------------/resources 【測試java程式中要使用的配置文件】
---/pom.xml 【maven的核心文件(maven項目必須有)】
2、倉庫:
倉庫是存放東西的, 存放maven使用的 jar 和 我們項目使用的jar。
1)倉庫的分類:
>本地倉庫:就是你的個人電腦上的文件夾,存放各種jar。
>遠程倉庫:在互聯網上的,使用網路才能使用的倉庫。
>>中央倉庫:最權威的, 所有的開發人員都共用使用的一個集中的倉庫,
https://repo.maven.apache.org (中央倉庫的地址)
>>中央倉庫的鏡像:就是中央倉庫的備份, 在各大洲,重要的城市都是鏡像。
>>私服,在公司內部,在區域網中使用的, 不是對外使用的。
2)倉庫的使用,maven倉庫的使用不需要人為參與。
開發人員需要使用mysql驅動 ?maven首先查 ---> 本地倉庫 ---> 私服 ---> 鏡像 ---> 中央倉庫
3、pom項目對象模型(pom.xml):
1)坐標:唯一值, 一個項目在互聯網中的唯一標識。
<groupId>公司功能變數名稱的倒寫</groupId>
<artifactId>自定義項目名稱</artifactId>
<version>自定版本號</version>
2)packaging:打包後壓縮文件的擴展名,預設是jar ,web應用是war(可以不寫, 預設是jar)。
3) 依賴:dependencies 和 dependency ,相當於是 java 代碼中的 import。
<!-- 你的項目中要使用的各種資源說明, 比我的項目要使用mysql驅動 -->
<dependencies>
<!-- "import導包" -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.9</version>
</dependency>
</dependencies>
4)properties:設置屬性。
5)build : maven在進行項目的構建時, 配置信息,例如指定編譯java代碼使用的jdk的版本等。
4、測試:
在 maven 項目中的 src/test/java 目錄下,創建測試程式。
例如你要測試HelloMaven ,
import org.junit.Test;
public class TestHelloMaven {
@Test
public void testAdd() {
//測試 HelloMaven 中的add方法是否正確
}
}
testAdd 叫做測試方法,定義規則:
1)方法是public的,必須的。
2)方法沒有返回值,必須的。
3)方法名稱是自定義的,推薦是Test + 方法名稱。
4)在方法的上面加入 @Test。
第三部分筆記:
1、資源插件(mybatis課程中會用到這個作用):
<build>
<resources>
<resource>
<!-- 文件所在的目錄 -->
<directory>src/main/java</directory>
<!-- 包括目錄下的 .properties,.xml 文件都會掃描到 -->
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<!-- filtering 選項 false 不啟用過濾器, *.property 已經起到過濾的作用了 -->
<filtering>false</filtering>
</resource>
</resources>
</build>
2、如何將項目壓縮包部署到tomcat伺服器上:
1)把你的項目中所有的class文件,配置文件等所有資源放到一個壓縮文件中,這個壓縮文件就是項目的結果文件。
2)把生成的壓縮文件放到 tomcat 的 webapps 目錄下。