Maven初學一

第一天

開發項目時要找某個jar包,實際上就是要確定jar包的座標

1.maven座標及倉庫的概述

在這裏插入圖片描述

2.項目的運行

1.打開cmd,在編程後的項目所在路徑下,使用命令mvn tomcat:run將項目部署到tomcat上,然後打開瀏覽器運行項目。如圖:
在這裏插入圖片描述
在這裏插入圖片描述
2.將項目打成war包,如果是web工程是打包成war,是java工程打包成jar,父工程打包成pom,使用命令mvn package如圖:在這裏插入圖片描述
打包後的war再target目錄下,如圖:
在這裏插入圖片描述

3.相關概念

構建

maven將項目構建的過程進行標準化,每個階段使用一個命令完成,下圖展示了構建過程的一些階段:
在這裏插入圖片描述
上圖中部分階段對應命令如下:

  • 清理階段對應maven的命令是clean,清理輸出的class文件

  • 編譯階段對應maven的命令是compile,將java代碼編譯成class文件。

  • 打包階段對應maven的命令是package,java工程可以打成jar包,web工程可以打成war包

  • 運行一個maven工程(web工程)需要一個命令:tomat:run

maven工程構建的優點:
1、一個命令完成構建、運行,方便快捷。
2、maven對每個構建階段進行規範,非常有利於大型團隊協作開發。

依賴管理

1.傳統項目的依賴管理

傳統的項目工程要管理所依賴的jar包完全靠人工進行,程序員從網上下載jar包添加到項目工程中,如下圖:程序員手工將Hibernate、struts2、spring的jar添加到工程中的WEB-INF/lib目錄下:

手工拷貝jar包添加到工程中的問題是:
1、沒有對jar包的版本統一管理,容易導致版本衝突。
2、從網上找jar包非常不方便,有些jar找不到。
3、jar包添加到工程中導致工程過大。

2.maven項目的依賴管理
maven項目管理所依賴的jar包不需要手動向工程添加jar包,只需要在pom.xml(maven工程的配置文件)添加jar包的座標,自動從maven倉庫中下載jar包、運行,如下圖:在這裏插入圖片描述
使用maven依賴管理添加jar的好處:
1、通過pom.xml文件對jar包的版本進行統一管理,可避免版本衝突。
2、maven團隊維護了一個非常全的maven倉庫,裏邊包括了當前使用的jar包,maven工程可以自動從maven倉庫下載jar包,非常方便。

maven的優勢

  1. 一步構建 maven對項目構建的過程進行標準化,通過一個命令即可完成構建過程。 依賴管理

  2. maven工程不用手動導jar包,通過在pom.xml中定義座標從maven倉庫自動下載,方便且不易出錯。

  3. maven的跨平臺,可在window、linux上使用。

  4. maven遵循規範開發有利於提高大型團隊的開發效率,降低項目的維護成本,大公司都會考慮使用maven來構建項目。

生命週期

maven對項目構建過程分爲三套相互獨立的生命週期,請注意這裏說的是“三套”,而且“相互獨立”,這三套生命週期分別是: 
Clean Lifecycle 在進行真正的構建之前進行一些清理工作。 
Default Lifecycle 構建的核心部分,編譯,測試,打包,部署等等。
Site Lifecycle 生成項目報告,站點,發佈站點。

生命週期階段

  1. 如下是clean生命週期的階段

    pre-clean 執行一些需要在clean之前完成的工作
    clean 移除所有上一次構建生成的文件
    post-clean 執行一些需要在clean之後立刻完成的工作

  2. 如下是default週期的內容:
    validate
    generate-sources
    process-sources
    generate-resources
    process-resources 複製並處理資源文件,至目標目錄,準備打包。
    compile 編譯項目的源代碼。
    process-classes
    generate-test-sources
    process-test-sources
    generate-test-resources
    process-test-resources 複製並處理資源文件,至目標測試目錄。
    test-compile 編譯測試源代碼。
    process-test-classes
    test 使用合適的單元測試框架運行測試。這些測試代碼不會被打包或部署。
    prepare-package
    package 接受編譯好的代碼,打包成可發佈的格式,如 JAR 。
    pre-integration-test
    integration-test
    post-integration-test
    verify
    install 將包安裝至本地倉庫,以讓其它項目依賴。
    deploy 將最終的包複製到遠程的倉庫,以讓其它開發人員與項目共享。

  3. 如下是site生命週期的階段
    pre-site 執行一些需要在生成站點文檔之前完成的工作
    site 生成項目的站點文檔
    post-site 執行一些需要在生成站點文檔之後完成的工作,並且爲部署做準備
    site-deploy 將生成的站點文檔部署到特定的服務器上

 每個maven命令對應生命週期的某個階段,例如:mvn clean 命令對應clean生命週期的clean階段;
 mvn test 命令對應default生命週期的test階段。
 執行命令會將該命令在的在生命週期當中之前的階段自動執行,比如:執行mvn clean 命令會自動執行pre-clean和clean兩個階段,mvn test命令會自動執行validate、compile、test等階段。

 注意:執行某個生命週期的某個階段不會影響其它的生命週期!

如果要同時執行多個生命週期的階段可在命令行輸入多個命令,中間以空格隔開,例如:
clean package 該命令執行clean生命週期的clean階段和default生命週期的package階段。

4.maven的安裝和目錄結構

下載

從該網站 http://maven.apache.org/download.cgi 下載maven3.3.9 版本

解壓
將maven解壓到一個不含有中文和空格的目錄中。

bin目錄 mvn.bat (以run方式運行項目)、 mvnDebug.bat(以debug方式運行項目 )
boot目錄 maven運行需要類加載器 
conf目錄 settings.xml 整個maven工具核心配置文件 
lib目錄 maven運行依賴jar包

環境變量的配置
電腦上需安裝java環境,安裝JDK1.7 + 版本 (將JAVA_HOME/bin 配置環境變量path )

配置 MAVEN_HOME
在這裏插入圖片描述
將 %MAVEN_HOME%/bin 加入環境變量 path
在這裏插入圖片描述
通過 mvn -v命令檢查 maven是否安裝成功,看到maven的版本爲3.3.9及java版本爲1.7即爲安裝成功。
在這裏插入圖片描述
目錄結構
在這裏插入圖片描述
Maven目錄結構的規範
在這裏插入圖片描述
在這裏插入圖片描述

5.倉庫的配置

倉庫的分類

maven的工作需要從倉庫下載一些jar包,如下圖所示
本地的項目A、項目B等都會通過maven軟件從遠程倉庫(可以理解爲互聯網上的倉庫)下載jar包並存在本地倉庫,
本地倉庫 就是本地文件夾,當第二次需要此jar包時則不再從遠程倉庫下載,
因爲本地倉庫已經存在了,可以將本地倉庫理解爲緩存

在這裏插入圖片描述
本地倉庫的配置

  • 本地倉庫 :用來存儲從遠程倉庫或中央倉庫下載的插件和jar包,項目使用一些插件或jar包,優先從本地倉庫查找
  • 默認本地倉庫位置在 user.dir/.m2/repository{user.dir}/.m2/repository,{user.dir}表示windows用戶目錄。
  • 遠程倉庫:如果本地需要插件或者jar包,本地倉庫沒有,默認去遠程倉庫下載。 遠程倉庫可以在互聯網內也可以在局域網內。
  • 中央倉庫 :在maven軟件中內置一個遠程倉庫地址http://repo1.maven.org/maven2 ,它是中央倉庫,服務於整個互聯網,它是由Maven團隊自己維護,裏面存儲了非常全的jar包,它包含了世界上大部分流行的開源項目構件。
    配置
    將 “repository.rar”解壓至自己的電腦上
    在這裏插入圖片描述
    配置文件:在maven安裝路徑下\conf\settings.xml文件中配置本地倉庫位置:
    在這裏插入圖片描述

6.maven的命令

1.compile
compile是maven工程的編譯命令,作用是將src/main/java下的文件編譯爲class文件輸出到target目錄下。
cmd進入命令狀態,執行mvn compile,如下圖提示成功:
在這裏插入圖片描述
查看 target目錄,class文件已生成,編譯完成。
在這裏插入圖片描述
2.test
test是maven工程的測試命令,會執行src/test/java下的單元測試類。
cmd執行mvn test執行src/test/java下單元測試類,下圖爲測試結果,運行1個測試用例,全部成功。
在這裏插入圖片描述
3.clean
clean是maven工程的清理命令,執行 clean會刪除target目錄的內容。
4.package
package是maven工程的打包命令,對於java工程執行package打成jar包,對於web工程打成war包。
5.install
install是maven工程的安裝命令,執行install將maven打成jar包或war包發佈到本地倉庫。
從運行結果中,可以看出:當後面的命令執行時,前面的操作過程也都會自動執行

7.maven工程創建及座標的添加

m2e插件安裝配置

通過入門程序中命令行的方式使用maven工作效率不高,可以在eclipse開發工具中集成maven軟件
eclipse是一個開發工具,maven是一個項目管理工具,maven有一套項目構建的規範
在eclipse集成maven軟件,最終通過eclipse創建maven工程。

插件安裝
在這裏插入圖片描述
在eclipse中配置倉庫的位置
在這裏插入圖片描述
構建索引
Window—show view ------other----------maven Repositories
在這裏插入圖片描述
重構索引
在這裏插入圖片描述
在eclipse中創建一個maven工程
在這裏插入圖片描述
選擇maven project
在這裏插入圖片描述
點next進入下面的界面
在這裏插入圖片描述
8. 可以看到一個helloworld工程,但報錯(添加下面的內容就OK了)
在這裏插入圖片描述
9. src/java/main創建了一個Servlet,但報錯
在這裏插入圖片描述
10. 要解決問題,就是要將servlet-api-xxx.jar包放進來,作爲maven工程應當添加servlet的座標,從而導入它的jar
直接打開helloworld工程的pom.xml文件,再添加座標
在這裏插入圖片描述

添加後自動生成的結果如下:
添加
在這裏插入圖片描述
添加jar包的座標時,還可以指定這個jar包將來的作用範圍
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

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