maven 學習總結(一)——Maven入門
一、Maven的基本概念
Maven(翻譯為”專家”,”內行”)是跨平臺的專案管理工具。主要服務於基於Java平臺的專案構建,依賴管理和專案資訊管理。
1.1、專案構建
專案構建過程包括【清理專案】→【編譯專案】→【測試專案】→【生成測試報告】→【打包專案】→【部署專案】這幾個步驟,這六個步驟就是一個專案的完整構建過程。
理想的專案構建是高度自動化,跨平臺,可重用的元件,標準化的,使用maven就可以幫我們完成上述所說的專案構建過程。
1.2、依賴管理
依賴指的是jar包之間的相互依賴,比如我們搭建一個Struts2的開發框架時,光光有struts2-core-2.3.16.3.jar這個jar包是不行的,struts2-core-2.3.16.3.jar還依賴其它的jar包,依賴管理指的就是使用Maven來管理專案中使用到的jar包,Maven管理的方式就是“自動下載專案所需要的jar包,統一管理jar包之間的依賴關係”。
1.3、使用Maven的好處
Maven中使用約定,約定java原始碼程式碼必須放在哪個目錄下,編譯好的java程式碼又必須放到哪個目錄下,這些目錄都有明確的約定。
Maven的每一個動作都擁有一個生命週期,例如執行 mvn install 就可以自動執行編譯,測試,打包等構建過程
只需要定義一個pom.xml,然後把原始碼放到預設的目錄,Maven幫我們處理其他事情
使用Maven可以進行專案高度自動化構建,依賴管理(這是使用Maven最大的好處),倉庫管理。
二、Maven下載
下載地址:http://maven.apache.org/download.cgi
下載完成後,得到一個壓縮包,解壓,可以看到maven的組成目錄
Maven目錄分析
- bin:含有mvn執行的指令碼
- boot:含有plexus-classworlds類載入器框架
- conf:含有settings.xml配置檔案
- lib:含有Maven執行時所需要的java類庫
- LICENSE.txt, NOTICE.txt, README.txt針對Maven版本,第三方軟體等簡要介紹
三、Maven安裝
1、首先要確保電腦上已經安裝了JDK(要jdk 1.6+的版本),配置好JDK的環境變數,使用如下的兩個命令檢查檢查JDK安裝的情況。
1 Echo %JAVA_HOME%
2 Java -version
2、對apache-maven-3.2.3-bin.zip進行解壓縮
對apache-maven-3.2.3-bin.zip進行解壓縮,例如解壓到如下目錄(解壓目錄最好不要有中文)
3、設定系統環境變數:MAVEN_HOME
4、設定環境變數Path,將%MAVEN_HOME%\bin加入Path中,一定要注意要用分號;與其他值隔開,如下圖所示:
%MAVEN_HOME%\bin代表的就是”E:\apache-maven-3.2.3\bin”目錄
5、驗證Maven安裝是否成功
開啟cmd視窗
輸入”mvn –v”命令 檢視Maven的相關資訊,如下圖所示:
能夠出現這樣的資訊就說明Maven的安裝已經成功了。
6、設定MAVEN_OPTS環境變數(可選配置)
由於Maven命令實際上是執行了Java命令,所以可以通過JAVA命令引數的方式來設定MAVEN執行引數。MAVEN_OPTS環境變數正是用於此用途
MAVEN_OPTS
-Xms128m -Xmx512m,分別設定JVM的最小和最大記憶體,如下圖所示:
四、Maven的簡單使用
4.1、Maven專案的目錄約定
MavenProjectRoot(專案根目錄)
|—-src
| |—-main
| | |—-java ——存放專案的.java檔案
| | |—-resources ——存放專案資原始檔,如spring, hibernate配置檔案
| |—-test
| | |—-java ——存放所有測試.java檔案,如JUnit測試類
| | |—-resources ——存放專案資原始檔,如spring, hibernate配置檔案
|—-target ——專案輸出位置
|—-pom.xml —-用於標識該專案是一個Maven專案
4.2、手動建立Maven專案,使用Maven編譯
1、建立專案根資料夾,例如Maven01
2、在Maven01資料夾中建立“pom.xml”檔案,如下圖所示:
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>cn.gacl.maven.hello</groupId>
<!--artifactId指的是專案中的某一個模組,預設命名方式是"專案名-模組名"-->
<artifactId>hello-first</artifactId>
<!--version指的是版本,這裡使用的是Maven的快照版本-->
<version>SNAPSHOT-0.0.1</version>
</project>
3.編寫Java類檔案,Maven專案規定,所有的*.java檔案必須放在src目錄下的main目錄下的java目錄中,在Maven01專案根目錄中建立一個src目錄,然後在src目錄中建立main目錄,在main目錄中再建立java資料夾,如下圖所示:
在java資料夾下建立一個Hello.java檔案,如下圖所示
在Hello.java檔案中編寫如下程式碼:
public class Hello{
public static void main(String[] args){
System.out.println("Hello Maven");
}
}
4.使用Maven編譯Hello.java,首先進入到專案根目錄,然後使用命令”mvn compile”進行編譯,如下圖所示:
使用Maven編譯完成之後,在專案根目錄下會生成一個target資料夾,如下圖所示:
開啟target資料夾,可以看到裡面有一個classes資料夾,如下圖所示:
classes資料夾存放的就是編譯成功後生成的.class檔案,如下圖所示:
5.使用”mvn clean”命令清除編譯結果,也就是把編譯生成的target資料夾刪掉,如下圖所示:
執行完”mvn clean”命令後,target資料夾就會被刪除了。
五、修改從Maven中心倉庫下載到本地的jar包的預設儲存位置
從Maven中心倉庫下載到本地的jar包的預設存放在”${user.home}/.m2/repository”中,${user.home}表示當前登入系統的使用者目錄(如”C:\Users\gacl”),如下圖所示
Jar包存放在這個位置不太好,我們希望能夠自己定義下載下來的jar包的存放位置,因此我們可以自己設定下載到本地時的jar包的存放目錄。
在“E:\”目錄下建立一個“repository”資料夾
找到apache-maven-3.2.3\conf目錄下的settings.xml檔案,如下圖所示:
編輯setting.xml檔案,如下圖所示:
加上下面的程式碼
<localRepository>E:/repository</localRepository>
這樣就可以把jar包下載到我們指定的E:/repository目錄中了,如下圖所示:
把jar包下載到本地的好處就是,當編譯時,會優先從本地的jar包去找,如果本地存在,就直接拿來用,如果不存在,就從Maven的中心倉庫去下載。如下圖所示:
第一次執行”mvn compile”和”mvn clean”這兩個命令時,Maven會去中央倉庫下載需要的jar包,而第二次執行這兩個命令時,由於所需的jar包已經在本地的倉庫中儲存,所以就可以直接拿來用了,這樣就省去了去中央倉庫下載jar包的時間。
以上就是Maven的簡單入門講解。
相關文章
- Maven學習總結Maven
- maven 學習總結(四)——Maven核心概念Maven
- maven 學習總結(六)——Maven與Eclipse整合MavenEclipse
- maven 學習總結(三)——使用Maven構建專案Maven
- maven 學習總結(九)——使用Nexus搭建Maven私服Maven
- maven學習(上)- 基本入門用法Maven
- maven 學習總結(二)——Maven專案構建過程練習Maven
- maven 學習總結(八)——使用Maven構建多模組專案Maven
- Maven入門指南(一)Maven
- maven學習總結(七)——eclipse中使用Maven建立Web專案MavenEclipseWeb
- Maven入門Maven
- maven 學習總結(五)——聚合與繼承Maven繼承
- Maven 總結Maven
- Maven學習總結(42)——Maven多模組構建中常用的引數Maven
- Maven入門教程Maven
- Maven 學習Maven
- Maven學習Maven
- Maven 學習筆記一Maven筆記
- Maven入門基礎Maven
- Maven入門詳解Maven
- Maven快速入門(五)Maven的依賴管理Maven
- Maven 常用技巧總結Maven
- Maven學習--profileMaven
- Maven實戰與原理分析(一):maven超全使用指南總結Maven
- Maven 教程之入門指南Maven
- Maven 學習筆記——Maven和Eclipse(2)Maven筆記Eclipse
- Maven 學習筆記——Maven環境配置(1)Maven筆記
- 使用Maven整合SSH總結Maven
- maven一站式學習Maven
- Maven例項講解教程,從零開始學Maven,帶你快速入門!Maven
- Maven學習筆跡Maven
- 學習Maven IntelliJMavenIntelliJ
- maven 學習筆記Maven筆記
- Maven實戰入門視訊教程-解析maven多模組管理Maven
- Maven 5 分鐘入門教程Maven
- maven 專案的建立入門Maven
- Maven2安裝總結Maven
- Javaxuex學習筆記---MavenJava筆記Maven