Maven学习(一)——Maven入门
為什么80%的碼農都做不了架構師?>>> ??
一、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文件,如下圖所示:
加上下面的代碼
1 <localRepository>E:/repository</localRepository>
這樣就可以把jar包下載到我們指定的E:/repository目錄中了,如下圖所示:
把jar包下載到本地的好處就是,當編譯時,會優先從本地的jar包去找,如果本地存在,就直接拿來用,如果不存在,就從Maven的中心倉庫去下載。如下圖所示:
第一次執行"mvn compile"和"mvn clean"這兩個命令時,Maven會去中央倉庫下載需要的jar包,而第二次執行這兩個命令時,由于所需的jar包已經在本地的倉庫中存儲,所以就可以直接拿來用了,這樣就省去了去中央倉庫下載jar包的時間。
以上就是Maven的簡單入門講解。
?
http://www.cnblogs.com/xdp-gacl/p/3498271.html
?
maven學習列表:
http://www.cnblogs.com/xdp-gacl/category/544719.html
?
Maven學習總結(一)——Maven入門
maven用于項目構建,依賴管理
?
使用Maven編譯項目遇到——“maven編碼gbk的不可映射字符”解決辦法
由于maven的編碼會繼承操作系統的編碼而引起的
?
Maven學習總結(二)——Maven項目構建過程練習?
項目文件結構、命令:mvn clean\compile\test\package\install以及組合使用
?
Maven學習總結(三)——使用Maven構建項目
mvn archetype:generate\create,但是create生成更快
?
Maven學習總結(四)——Maven核心概念
坐標、依賴、倉庫、生命周期、插件
?
Maven學習總結(五)——聚合與繼承
?modules、parent
?
Maven學習總結(六)——Maven與Eclipse整合
安裝maven插件和基本設置
?
Maven學習總結(七)——eclipse中使用Maven創建Web項目
Maven學習總結(八)——使用Maven構建多模塊項目
Maven學習總結(九)——使用Nexus搭建Maven私服
寫得太簡潔了點,可看后面的文章。
轉載于:https://my.oschina.net/itommy/blog/844271
總結
以上是生活随笔為你收集整理的Maven学习(一)——Maven入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浏览器标准模式与怪异模式的区别
- 下一篇: H5实例教学--微信内嵌视频1(案例浅析