一.Maven是什麼
Maven是項目管理工具
優點 : 1. 方便jar管理
2. 不需要上傳jar包
3. 跨平臺管理
二.安裝網上教程很多 , 筆記只記錄大體步驟
- 官方下載
- 解壓後 , 設置環境變量 , 運行目錄在bin下
- 修改倉庫地址 , 在bin目錄下config文件內settings.xml中修改 , 這個標籤內地址爲倉庫地址 , 倉庫是用來放jar包的地方 , 可以自己確定放jar包的地址 .
- 網上推薦是在,settings.xml文件中修改 , 下載jar包的服務器 , 默認是官方的 , 因爲官方服務器是國外的 , 在國內下載就有點慢 , 可以不修改不影響.
三. 我用idea自帶Maven插件 , 如果用eclipse可能要自己去安裝 , 這個插件 , 安裝方法百度
四. 瞭解Maven項目結構
pom文件是判斷Maven的核心 , 有pom的一定是一個maven工程 , src目錄 , 和 target目錄可能沒有.
下面是一個標準的Maven普通工程 , web工程會在 resources 下方的位置上多出個webapp , webapp與 java , resources是同級目錄.
ProjectName
|-src
| |-main
| | |-java —— 存放項目的.java文件
| | |-resources —— 存放項目資源文件,如spring, hibernate配置文件
| |-test
| |-java ——存放所有測試.java文件,如JUnit測試類
| |-resources —— 測試資源文件
|-target —— 目標文件輸出位置例如.class、.jar、.war文件 , 實際上就是編譯後的文件
|-pom.xml ——maven項目核心配置文件
五. 基礎命令
compile : 將項目重新編譯一遍 , target 存放編譯後的文件
clean : 將編譯好的文件清除 , target被刪除了
test : 單元測試操作 , 執行完畢後,會在target目錄中生成三個文件夾:surefire、surefire-reports(測試報告)、test-classes(測試的字節碼文件)
package :執行完畢後,會在target目錄中生成一個文件,該文件可能是jar、war
install : 將打好的jar包安裝到本地倉庫的操作 先了解
六. GAV座標
GAV座標是在pom文件中導入依賴(jar包)時候用到的 , 下面是GAV的模板
groupId:定義當前Maven組織名稱
artifactId:定義實際項目名稱
version:定義當前項目的當前版本
GAV根據使用的jar包去http://www.mvnrepository.com或者http://search.maven.org/網站查找 , 然後複製粘貼在 , pom文件的依賴裏
七. 依賴的概念
依賴就是指 , 在寫代碼時候用到的jar包 , 在一個項目中 , 多人開發時候如果每個人都用自己的jar包 , 會出現重複 , 不兼容 , 等問題 , 用Maven可以統一使用的jar包
依賴的導入就是通過上面說的GAV座標實現的自動導入 , 只要在maven中導入GAV座標 , 那麼Maven會自動下載
依賴還有 , 依賴傳遞 , 依賴排除 , 依賴衝突 , 等問題
八. 生命週期
Maven中有三套互相獨立的生命週期 , Clean Lifecycle , Default Lifecycle , Site Lifecycle ,個人理解的不多 可以自行查找 , 有一個個原則 , 運行任何一個階段的時候,它前面的所有階段都會被運行 , 例如運行 package 會將前面的 compile和test命令按順序依次運行. 這裏舉例 , 只是其中的一部分
寫的很粗糙 , 都是很多都是一個梗概 , 對Maven有個大體的瞭解 .