Maven是跨平台的項目管理工具。主要服務於基於Java平台的項目構建,依賴管理和項目信息管理。
項目構建過程包括【清理項目】→【編譯項目】→【測試項目】→【生成測試報告】→【打包項目】→【部署項目】這幾個步驟,這六個步驟就是一個項目的完整構建過程。
理想的項目構建是高度自動化,跨平台,可重用的組件,標准化的,使用maven就可以幫我們完成上述所說的項目構建過程。
依賴指的是jar包之間的相互依賴,比如我們搭建一個Struts2的開發框架時,光光有struts2-core-2.3.16.3.jar這個jar包是不行的,struts2-core-2.3.16.3.jar還依賴其它的jar包,依賴管理指的就是使用Maven來管理項目中使用到的jar包,Maven管理的方式就是“自動下載項目所需要的jar包,統一管理jar包之間的依賴關系”。
Maven的約定:約定java源代碼代碼必須放在哪個目錄下,編譯好的java代碼又必須放到哪個目錄下,這些目錄都有明確的約定。
Maven的動作:構建項目的每個過程maven都有相對應的shell命令。
Maven的配置文件:在項目中只需要定義一個pom.xml,然後把源碼放到默認的目錄,Maven幫我們處理其他事情。
Maven的管理:依賴管理,倉庫管理。
下載地址:http://maven.apache.org/download.cgi
下載zip包即可,maven是一款綠色輕量級工具,解壓並配置環境變量即可使用。(前提是機器上已經裝好了java環境)
vi打開個人目錄下的 .zshrc 文件(用bash的應該打開 .bash_profile文件)。
編輯 .zshrc文件如下:
主要是紅框的內容,其他的內容是我自己機器的環境變量,與maven無關。
MAVEN_HOME 是maven的zip的解壓地址,然後將maven的bin目錄配置到path下,這樣就可以直接操作shell命令來進行maven操作了。
終端窗口輸入source .zshrc (用bash的同學應該輸入source .bash_profile)。
之後直接輸入mvn -v,出現下面的信息就表示配置成功了。
|----src
| |----main
| | |----java ——存放項目的.java文件
| | |----resources ——存放項目資源文件,如spring, mybatis配置文件
| |----test
| |----java ——存放所有測試.java文件,如JUnit測試類
| |----resources ——存放項目資源文件,如spring, mybatis配置文件
|----target ——項目輸出位置
|----pom.xml ----用於標識該項目是一個Maven項目
按照maven的目錄約定創建文件夾及其java文件:
在項目的根目錄下創建pom.xml文件,並且做如下配置:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <!--所有的Maven項目都必須配置這四個配置項--> <modelVersion>4.0.0</modelVersion> <!--groupId指的是項目名的項目組,默認就是包名--> <groupId>com.xxlxx.maven.hello</groupId> <!--artifactId指的是項目中的某一個模塊,默認命名方式是"項目名-模塊名"--> <artifactId>hello-maven</artifactId> <!--version指的是版本,這裡使用的是Maven的快照版本--> <version>SNAPSHOT-0.0.1</version> </project>
使用Maven編譯HelloMaven.java,首先進入到項目根目錄,然後使用命令”mvn compile”進行編譯:
編譯前的文件目錄:
編譯信息:
編譯後的文件目錄:
可以看到多了一個target目錄,target目錄下有classes文件夾,文件夾中裝有src目錄裡java文件編譯之後的class文件。
ps.此外還有一個命令是“mvn clean”,該命令是將項目根目錄下的target文件刪除。
該倉庫默認位於用戶根目錄下的.m2文件夾中。第一次執行"mvn compile"和"mvn clean"這兩個命令時,Maven會去中央倉庫將需要的jar包下載到本地倉庫中,也就是這個repository文件夾中。而第二次執行這兩個命令時,由於所需的jar包已經在本地的倉庫中存儲,所以就可以直接拿來用了,這樣就省去了去中央倉庫下載jar包的時間。
該xml文件有兩份,第一份是在MAVEN_HOME下的conf文件夾中,是maven的全局配置文件。第二份是在上文所述的.m文件夾下,是maven的用戶配置文件。兩個配置文件都叫做settings.xml。
利用該xml文件自定義repository的位置: