日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Maven教程详细总结+学习路线

發布時間:2025/3/21 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Maven教程详细总结+学习路线 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在使用Maven之前必須配置好Maven的環境變量及jdk 的環境變量:

如何篇配置Maven環境變量以及安裝eclipse中Maven的鏡像

一、為什么要使用Maven

目前技術在開發中存在的問題:

① 一個項目就是一個大工程
如果項目非常龐大,就不適合用package來劃分。最好是一個功能就是一個模塊,利于分工協作。借助Maven就可以將一個項目拆分成多個模塊。
②項目所需的jar包和jar包之間的依賴包必須自己提前準備好
如果是以不規范的方式下載的jar包,那么可能會帶來問題。借助于Maven,只需要安裝Maven的倉庫到本地即可,因為所有知名框架的jar包都保存在Maven的中央倉庫中,可以以一種規范的方式得到jar包。
③jar包都需要手動添加到lib目錄中
帶來的問題:同樣的jar包出現在每個工程中,一方面浪費空間,另外工程變得臃腫。借助Maven可以直接將jar包保存在倉庫中,有需要的工程可以通過配置pom.xml引入這個jar包,不需把jar包復制過來。

二、Maven是什么

Maven是一款專門服務于JAVA的自動化構建工具,并不能直接理解為我們找jar包的工具。那么自動化構建又是什么?

我把Web工程的構建分為了兩步:1.編譯 2.部署
1.編譯 源碼通過java編譯器編譯成字節碼文件的過程。
2.部署 一個B/S項目最終運行的并不是項目本身,而是這個動態web工程“編譯的結果”。就像一個java程序最終運行的并不是java的文件,而是編譯后的.class文件。

Maven自動化構建過程的具體步驟

①清除:清理上次的編譯結果
②編譯:將java文件編譯成class文件
③測試:調用Junit自動測試,測試完后打印測試的結果
④打包:java工程打jar包,web工程打成war包
⑤安裝:把不是maven庫中的,自己寫的工程,模塊之間有需要依賴的模塊,安裝到maven倉庫中。
⑥部署:將動態的web工程打成的war包部署到服務器中,使其可以運行。
以上步驟全部可以交由Maven通過maven命令去自動執行。

三、Maven怎樣使用

Maven的學習路線

①約定的目錄結構
②坐標的概念
③maven倉庫的概念

④依賴怎樣使用

  • 依賴的傳遞性
  • 系統選擇依賴時的就近原則

⑤繼承和聚合的概念和使用

①約定的目錄結構

若想使用Maven,那么就必須按照Maven約定的目錄結構創建項目(可在eclipse中new一個Maven項目直接形成約定的目錄結構)

  • 為什么要遵守約定?
    因為Maven負責整個工程的自動化構建,只有這樣Maven才能讀到工程里的文件,進行編譯、測試、打包等工作。

  • 我們自己定義的東西如何讓框架知道?
    ①遵守框架的約定:比如要使用log4j的jar包,你得按照他的規定創建log4j.properties,一個字母一個字母的不能出錯。
    ②以配置的方式告訴框架:如在web.xml中配置spring,指明spring的配置文件的路徑。

②坐標的概念

概念:很簡單,就像x坐標和y坐標可以唯一標識一個平面中的點。一個maven中的坐標唯一標識一個Maven倉庫中的jar包。所以若想使用某個jar包,你只需知道他的坐標,配置在pom.xml中即可。

使用坐標必須按照maven的“gav”格式:
Ⅰ groupId:公司或組織的域名倒敘+項目名

<groupId>com.sms.maven</groupId>

Ⅱ artifactId:模塊名

<artifactId>Hello</artifactId>

Ⅲ version:版本號

<version>1.0.0</version>

比如spring-core的坐標:

<groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.0.0.RELEASE</version>

③maven倉庫的概念

概念:倉庫=自動化構建所需的插件+所有知名框架的jar包+我們自己開發的maven模塊(使用mvn -stall進入倉庫)

倉庫的分類

  • 本地倉庫:自己電腦上已經部署好的maven倉庫,需要去網上下載。
  • 私服:搭建在局域網中,為局域網中的maven項目服務。
  • 中央倉庫:搭建在Internet中,為世界上所有的maven項目服務。

④依賴如何使用(jar包如何從倉庫中引入?)

概念:在pom.xml配置依賴,就是給出坐標,引入jar包/其他模塊的過程
配置依賴:把jar包或模塊的坐標寫在dependency標簽中
maven解析配置好的依賴:maven到本地倉庫中查找被依賴的jar包的過程
  • 依賴之間相互傳遞
    如果現在有這三個模塊,其中HelloFriend需要使用到Hello模塊里的類,MakeFriends需要使用到HelloFriend模塊里的類。
    依賴關系:MakeFriends—>HelloFriend—>Hello

    若Hello模塊中配置了spring-core的jar包,那么在HelloFriend和MakeFriends中都會包含spring-core的運行時環境。即都會包含下圖中的jar包:

  • 怎樣排除依賴
    當我們接受到傳遞過來的依賴關系時,如果有不希望使用在當前工程中的jar包,我們可以排除他。排除的方式:

  • 系統選擇依賴時的就近選擇
    同樣是這三個模塊,依賴關系:MakeFriends—>HelloFriend—>Hello

    如果Hello模塊中使用到log4j-4.0的版本,而HelloFriend模塊使用到log4j-4.9的版本,那么MakeFriends模塊中該如何選擇依賴過來的的版本?
    答案:選擇HelloFriend模塊中log4j的版本。因為就近原則,MakeFriends到HelloFriend模塊是一步,到Hello模塊是兩步。

⑤繼承和聚合的使用

繼承的使用情景: 同樣是這三個模塊,依賴關系:MakeFriends—>HelloFriend—>Hello,但是由于test的依賴范圍不可傳遞,每一個模塊依賴的Junit的版本號不相同。那么怎么統一管理Junit的版本?
答案:此時就需要一位“父親”,將Junit的依賴統一提取到父親中,在子工程中的Junit依賴不聲明版本號,以父親設定的為準。
操作步驟:
① 創建一個Maven工程作為父工程,注意:打包方式為pom

②在父工程中統一管理Junit的版本,聲明為4.9

<dependencyManagement><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.9</version><scope>test</scope></dependency></dependencies></dependencyManagement>

③“認爹儀式”,在子工程中聲明對父工程的引用

<parent><groupId>com.sms.maven</groupId><artifactId>Parent</artifactId><version>0.0.1-SNAPSHOT</version><!-- 以當前子工程為基準找到父工程pom.xml的路徑 --><relativePath>../Father/pom/xml</relativePath></parent>

④去掉子工程的坐標和父工程的重復部分。
⑤去掉子工程中Junit依賴的版本號。

聚合的使用場景: 需要一件安裝所有模塊到倉庫時,使用聚合。
配置方式: 在總的聚合工程中,配置各個參與聚合的模塊。

<modules><module>../Hello</module><module>../HelloFriend</module><module>../MakeFriends</module></modules>

總結

以上是生活随笔為你收集整理的Maven教程详细总结+学习路线的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。