一、Maven簡介
Maven可以翻譯為“知識的積累”、“專家”、“內行”。作為Apache組織中的一個頗為成功的開源項目,Maven主要服務于基于Java平臺的項目構建、依賴管理、和項目信息管理。Maven在各類項目中都可以大顯身手。
(1) Maven是優秀的構建工具
除了編寫源代碼,我們每天有相當一部分時間花在了編譯,運行單元測試,生成文檔,打包,部署等繁瑣且不起眼的工作上,這就是構建。Maven就是一個異常強大的構建工具,能夠幫我們自動化構建過程,從清理,編譯,測試,到生成報告,再到打包和部署。
我們不需要一遍一遍的輸入命令, 一次又一次點擊鼠標,Maven幫我們很方便的搞定。Maven是跨平臺的。
(2) Maven還是依賴管理工具和項目信息管理工具
1. Maven通過一組坐標能夠找到任何一個Java類庫(如jar),Maven給這個類庫世界引入了經緯,讓它們變得有秩序,于是我們可以借助它來有序地管理依賴,輕松地解決那些繁雜的依賴問題。
2. Maven還能幫助我們管理原本分散在項目中各個角落的項目信息,包括項目描述,開發者列表,版本控制系統地址,許可證,缺陷管理系統地址等。除了直接的項目信息,通過Maven自動生成的站點,
Maven是什么。 以及一些已有的插件,我們還能輕松地獲得項目文檔、測試報告、靜態分析報告、源碼版本日志報告等非常具有價值的項目信息。
(3) 倉庫
Maven為全世界的Java開發者提供了一個免費的中央倉庫,在其中幾乎可以找到任何流行開源類庫。通過Maven的一些衍生工具(如Nexus),我們還能對其進行快速地搜索。只要定位了坐標,Maven就能夠幫我們自動下載,省去了手工勞動。
1.1、項目的構建
項目構建過程包括【清理項目】→【編譯項目】→【測試項目】→【生成測試報告】→【打包項目】→【部署項目】這幾個步驟,這六個步驟就是一個項目的完整構建過程。
1.2、依賴管理
依賴指的是jar包之間的相互依賴,比如我們搭建一個Struts2的開發框架時,光光有struts2-core-2.3.16.3.jar這個jar包是不行的,struts2-core-2.3.16.3.jar還依賴其它的jar包,
maven命令詳解, 依賴管理指的就是使用Maven來管理項目中使用到的jar包,Maven管理的方式就是“自動下載項目所需要的jar包,統一管理jar包之間的依賴關系”。
1.3、使用maven的優點
Maven中使用約定,約定java源代碼代碼必須放在哪個目錄下,編譯好的java代碼又必須放到哪個目錄下,這些目錄都有明確的約定。
Maven的每一個動作都擁有一個生命周期,例如執行 mvn install 就可以自動執行編譯,測試,打包等構建過程
只需要定義一個pom.xml,然后把源碼放到默認的目錄,Maven幫我們處理其他事情
使用Maven可以進行項目高度自動化構建,依賴管理(這是使用Maven最大的好處),倉庫管理。
二、Maven的安裝
2.1、Maven的下載
Python web框架? 下載地址是:http://maven.apache.org/download.cgi
下載完成后,得到一個壓縮包解壓,可以看到maven的組成目錄
Maven目錄介紹:
maven的安裝與配置。 bin:含有mvn運行的腳本
boot:含有plexus-classworlds類加載器框架
conf:含有settings.xml配置文件
lib:含有Maven運行時所需要的java類庫
LICENSE.txt, NOTICE.txt, README.txt針對Maven版本,第三方軟件等簡要介紹
1.2、Maven的安裝
maven菜鳥教程, 第一步:首先你要確保你的電腦已經安裝了jdk1.6版本以上的,并配置好了JDK的環境變量。
第二步:
對apache-maven-3.2.3-bin.zip進行解壓縮,例如解壓到如下目錄(解壓目錄最好不要有中文)
第三步:配置環境變量
maven java。
第四步:設置環境變量path,將%M2_HOME%\bin加入到path中,一定要注意使用分號;隔開。
第五步:驗證是否配置成功
打開cmd命令
輸入:mvn-v
maven使用教程、
三、Maven的使用
3.1、Maven的目錄結構
MavenProjectRoot(項目根目錄)
?? |----src
?? |???? |----main
?? |???? |?? ????? |----java ——存放項目的.java文件
?? |???? |?? ????? |----resources ——存放項目資源文件,如spring, hibernate配置文件
?? |???? |----test
?? |???? |?? ????? |----java ——存放所有測試.java文件,如JUnit測試類
?? |?? ? |?? ????? |----resources ——存放項目資源文件,如spring, hibernate配置文件
?? |----target ——項目輸出位置
?? |----pom.xml ----用于標識該項目是一個Maven項目
3.2、手動創建一個Maven項目
第一步:創建項目的根文件夾:FirstMaven
第二步:創建一個pom.xml文件
maven使用、
<?xml version="1.0" encoding="UTF-8"?>2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 5 http://maven.apache.org/xsd/maven-4.0.0.xsd">6 <!--所有的Maven項目都必須配置這四個配置項-->7 <modelVersion>4.0.0</modelVersion>8 <!--groupId指的是項目名的項目組,默認就是包名-->9 <groupId>cn.gacl.maven.hello</groupId> 10 <!--artifactId指的是項目中的某一個模塊,默認命名方式是"項目名-模塊名"--> 11 <artifactId>hello-first</artifactId> 12 <!--version指的是版本,這里使用的是Maven的快照版本--> 13 <version>SNAPSHOT-0.0.1</version> 14 </project>
?
第三步:編寫Java類文件,Maven項目規定,所有的*.java文件必須放在src目錄下的main目錄下的java目錄中,在FirstMaven項目根目錄中創建一個src目錄,然后在src目錄中創建main目錄,在main目錄中再創建java文件夾
第四步:使用Maven編譯Hello.java,首先進入到項目根目錄,然后使用命令”mvn compile”進行編譯
?
使用Maven編譯完成之后,在項目的根目錄會產生一個target文件夾。
打開target文件夾,可以看到里面有一個classes文件夾,classes文件夾存放的就是編譯成功后生成的.class文件。
第五步:使用"mvn clean"命令清除編譯結果,也就是把編譯生成的target文件夾刪掉
四、修改Maven中心倉庫下載到本地的jar的默認存儲位置(配置本地倉庫)
從Maven中心倉庫下載到本地的jar包的默認存放在”${user.home}/.m2/repository”中,${user.home}表示當前登錄系統的用戶目錄(如"C:\Users\gacl")
Jar包存放在這個位置不太好,我們希望能夠自己定義下載下來的jar包的存放位置,因此我們可以自己設置下載到本地時的jar包的存放目錄。
找到apache-maven-3.3.9\conf下的settings.xml文件
復制setting.xml文件,到默認的jar存放位置
編輯setings.xml文件
設置E盤下的AstudySoftwere/mavenrepository目錄作為maven默認的下載存儲位置
把jar包下載到本地的好處就是,當編譯時,會優先從本地的jar包去找,如果本地存在,就直接拿來用,如果不存在,就從Maven的中心倉庫去下載。
?