Hello,今天給各位童鞋們分享的是Maven,趕忙拿出小本子記下來吧java
須要分析: 分析項目具體完成的功能,有什麼要求, 具體怎麼實現。mysql
設計階段:根據分析的結果, 設計項目的使用什麼技術, 解決難點。web
開發階段:編碼實現功能。 編譯代碼。自我測試sql
測試階段:專業的測試人員,測整個項目的功能十分符合設計要求。出一個測試報告。apache
項目的打包,發佈階段: 給用戶安裝項目windows
1)項目的自動構建,幫助開發人員作項目代碼的編譯,測試, 打包,安裝,部署等工做。服務器
2)管理依賴(管理項目中使用的各類jar包)。markdown
依賴:項目中須要使用的其餘資源, 常見的是jar 。 好比項目要使用mysql驅動。咱們就說項目依賴mysql驅動。網絡
管理jar ,須要從網絡中單獨下載某個jarjsp
須要選擇正確版本
手工處理jar文件之間的依賴。 a.jar裏面要使用b.jar的類。
maven是apache基金會的開源項目,使用java語法開發。 Maven 這個單詞的本意是:專家,內行。讀音是['meɪv(ə)n] 或 ['mevn]。
maven是項目的自動化構建工具。 管理項目的依賴。
①POM (Project Object Model,項目對象模型)
②約定的目錄結構
③座標
④依賴管理
⑤倉庫管理
⑥生命週期
⑦插件和目標
⑧繼承
⑨聚合
安裝:
肯定JAVA_HOME 指定jdk的安裝目錄, 若是沒有JAVA_HOME, 須要在windows的環境變量中建立JAVA_HOME, 它的值是jdk的安裝目錄(先建立java_home ,而後在path 加上 %xxx%\bin )
解壓縮 apache-maven-3.3.9-bin.zip ,把解壓後的文件放到一個目錄中。目錄的路徑不要有中文, 不要有空格。
把maven安裝目錄中下的bin的路徑添加到path中
測試maven的安裝。 在命令行執行 mvn -v
maven解壓後的目錄結構
maven的其餘安裝方式:
肯定JAVA_HOME是否有效
在環境變量中,建立一個叫作M2_HOME (或者MAVEN_HOME) ,它的值是maven的安裝目錄M2_HOME=D:\tools\apache-maven-3.3.9
在path環境變量中,加入 %M2_HOME%\bin
測試maven的安裝,在命令行執行 mvn -v
maven項目使用的大多人 遵循的目錄結構。 叫作約定的目錄結構。
一個maven項目是一個文件夾。 好比項目叫作Hello
maven的使用方式:
1)maven能夠獨立使用: 建立項目,編譯代碼,測試程序,打包,部署等等
2)maven和idea一塊兒使用:經過idea藉助maven,實現編碼,測試,打包等等
POM: Project Object Model 項目對象模型, maven把項目當作模型處理。 操做這個模型就是操做項目。
maven經過pom.xml文件實現 項目的構建和依賴的管理。
座標組成是 groupid, artifiactId, version。 座標概念來自數學。·
座標做用:肯定資源的,是資源的惟一標識。 在maven中,每一個資源都是座標。 座標值是惟一的。簡稱叫gav
項目使用gav:
每一個maven項目,都須要有一個本身的gav
管理依賴,須要使用其餘的jar (也須要使用gav做爲標識)。
搜索座標的地址: mvnrepository.com/
依賴:項目中要使用的其餘資源(jar)。
須要使用maven表示依賴,管理依賴。 經過使用dependency和gav一塊兒完成依賴的使用
須要在pom.xml文件中,使用dependencies 和dependency, 還有gav 完成依賴的說明。
格式:
倉庫是存東西的,maven的倉庫存放的是:
maven工具本身的jar包。
第三方的其餘jar, 好比項目中要使用mysql驅動。
本身寫的程序,能夠打包爲jar , 存放到倉庫。
倉庫的分類:
本地倉庫(本機倉庫): 位於你本身的計算機, 它是磁盤中的某個目錄。
本地倉庫:默認路徑,是你登陸操做系統的帳號的目錄中/.m2/repository
C:\Users\NING MEI.m2\repository
修改本地倉庫的位置:修改maven工具的配置文件(maven的安裝路徑\conf\setting.xml)
步驟:
1)建立一個目錄,做爲倉庫使用。 目錄不要有中文和空格。 目錄不要太深。
例如: D:\openrepository
2)修改setting.xml文件,指定 D:\openrepository這個目錄
D:/openrepository
遠程倉庫: 須要經過聯網訪問的
1)中央倉庫: 一個ftp服務器, 存放了全部的資源。
2)中央倉庫的鏡像: 就是中央倉庫的拷貝。 在各大主要城市都有鏡像。
3)私服:在局域網中使用的。 私服就是本身的倉庫服務器。 在公司內部使用的。
maven使用倉庫: maven自動使用倉庫, 當項目啓動後, 執行了maven的命令, maven首先訪問的是本地倉庫, 從倉庫中獲取所需的jar, 若是本地倉庫沒有 ,須要訪問私服或者中央倉庫或者鏡像。
maven的生命週期: 項目構建的各個階段。 包括 清理, 編譯, 測試,報告,打包,安裝,部署。
插件:要完成構建項目的各個階段,要使用maven的命令, 執行命令的功能是經過插件完成的。插件就是jar,一些類。
命令: 執行maven功能是 由命令發出的。 好比 mvn compile
單元測試(junit):
junit是一個單元測試的工具, 在java中常常使用。
單元:在java中指的是方法。 一個方法就是一個單元, 方法是測試的最小單位。
做用:使用junit去測試方法是否完成了要求。 開發人員自測。
使用單元測試:
1)加入junit的依賴(一些類和方法)
2)在src/test/java 目錄中建立測試類文件。 寫測試代碼
單元測試使用的建議:
1. 測試類的定義, 名稱通常是Test+要測試的類名稱
2. 測試類它的包名和要測試的類包名同樣。
3. 在類中定義方法,要測試代碼。
方法的定義:public方法,
沒有返回值
方法名稱自定義(建議 Test+測試的方法名稱)
方法沒有參數
4.在測試類中的方法,能夠單獨執行。 測試類也能夠單獨執行
5.在方法的上面加入@Test
命令:
1) mvn clean: 清理命令, 做用刪除之前生成的數據, 刪除target目錄。
插件: maven-clean-plugin , 版本是 2.5
2)mvn compile:編譯命令,執行的代碼編譯, 把src/main/java目錄中的java代碼編譯爲class文件。
同時把class文件拷貝到 target/classes目錄。 這個目錄classes是存放類文件的根目錄(也叫作類路徑,classpath)
插件: maven-compiler-plugin 版本3.1。 編譯代碼的插件
maven-resources-plugin 版本2.6 。 資源插件, 處理文件的。 做用是把src/main/resources目錄中的
文件拷貝target/classes目錄中。
3)mvn test-compile: 編譯命令, 編譯src/test/java目錄中的源文件, 把生成的class拷貝到target/test-classes目錄。同時把src/test/resources目錄中的文件拷貝到 test-clasess目錄
插件: maven-compiler-plugin 版本3.1。 編譯代碼的插件
maven-resources-plugin 版本2.6 。 資源插件, 處理文件的
4)mvn test:測試命令, 做用執行 test-classes目錄的程序, 測試src/main/java目錄中的主程序代碼是否符合要求。
插件: maven-surefire-plugin 版本 2.12.4
5)mvn package:打包,做用是把項目中的資源class文件和配置文件都放到一個壓縮文件中, 默認壓縮文件是jar類型的。 web應用是war類型, 擴展是jar,war的。
插件:maven-jar-plugin 版本 2.4。 執行打包處理。 生成一個jar擴展的文件, 放在target目錄下.
打包的文件包含的是 src/main目錄中的全部的生成的class和配置文件和test無關。
生成的是 ch01-maven-1.0-SNAPSHOT.jar
6)mvn install : 把生成的打包的文件 ,安裝到maven倉庫。
插件: maven-install-plugin 版本 2.4 。 把生成的jar文件安裝到本地倉庫。
查看查看中的jar文件:
7)mvn deploy 部署主程序(會把本工程打包,按照本工程的座標保存到本地庫中,而且還會保存到私服倉庫中。還會自動把項目部署到 web 容器中)。
在pom.xml文件中, build標籤中。設置插件
idea中有一個自帶的maven。 咱們要讓idea使用本身安裝的maven。
選擇File- Settings
設置項: -DarchetypeCatalog=internal
2) File - Other Settings
同上的設置
依賴範圍:使用scope表示依賴的範圍。
依賴範圍表示: 這個依賴(jar和裏面類)在項目構建的那個階段起做用。
依賴範圍scope :
compile:默認, 參與構建項目的全部階段
test:測試,在測試階段使用, 好比執行mvn test會使用junit 。
provided: 提供者。 項目在部署到服務器時,不須要提供這個依賴的jar , 而是由服務器這個依賴的jar包
明顯的是servlet 和jsp 依賴
1)講的是properties它裏面的配置
全局變量
在properties定義標籤,這個標籤就是一個變量, 標籤的文本就是變量的值。
使用全局變量表示 多個依賴使用的版本號。
使用步驟:
1.在properties標籤中,定義一個標籤,指定版本的值
2.使用全局變量, 語法 ${變量名}
3)使用資源插件
處理的配置文件的信息, maven默認處理配置文件
①:maven會把src/main/resources目錄中的文件, 拷貝到target/classes目錄下
②:maven只處理src/main/java目錄中的 .java文件,把這些java文件編譯爲class,拷貝到 target/classes目錄中。 不處理其餘文件。
好啦,今天的文章就到這裏了,但願可以幫助到屏幕前迷茫的大家