Maven 學習筆記(1)入門篇

1. Maven的簡介


1.1 Maven 是什麼?


Maven是一個跨平臺的項目管理工具,它包含了一個項目對象模型 (Project Object Model),一組標準集合,一個項目生命週期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命週期階段(phase)中插件(plugin)目標(goal)的邏輯。
Maven主要服務於基於Java平臺的項目構建、依賴管理和項目信息管理。


1.2 約定優於配置

|------------目錄-------------|--------------目的-------------|
|${basedir}                   |存放pom.xml和所有的子目錄      |
|${basedir}/src/main/java     |項目的 java源代碼              |
|${basedir}/src/main/resources|項目的資源,比如說 property文件|
|${basedir}/src/test/java     |項目的測試類,比如說 JUnit代碼 |
|${basedir}/src/test/resources|測試使用的資源                 |


一個 Maven 項目在默認情況下會產生 JAR 文件,另外 ,編譯後 classes 會放在 ${basedir}/target/classes 下面, JAR 文件會放在 ${basedir}/target 下面。


1.3 Maven 的優點

(1)對第三方依賴庫進行統一的版本管理
只要用了 Maven 就不用再爲每個項目複製jar了,Maven 會在你需要的時候,自動把這些第三方依賴庫找到,你需要編譯,Maven 就把這些jar包放到classpath裏,你需要打包,Maven 就幫你把需要的jar包都複製到WEB-INF/lib/目錄下。
(2)統一項目的目錄結構
可以保證所有項目的目錄結構都是一樣的,每個目錄起什麼作用都很清楚明瞭。
(3)統一軟件構建階段
Maven 把軟件開發的過程劃分成了幾個經典階段,比如你先要生成一些java代碼,再把這些代碼複製到特定位置,然後編譯代碼,複製需要放到 classpat 下的資源,再進行單元測試,單元測試都通過了才能進行打包,發佈。
以前使用Ant,最令人頭疼的就是要爲不同的項目寫很多build.xml腳本,而且這些腳本還不太通用,現在我們可以使用 Maven 提供的這些經典構建階段,讓每個項目就經過相同的步驟,從源代碼一步一步變成可以部署的成品。如果想要什麼附加功能,把對應的插件綁定到一個構建階段上,那麼到了執行這個構建階段的時候,就會執行綁定的插件了。
(4)測試驅動開發
測試是maven生命週期的最重要組成部分之一,並且Maven有現成的成熟插件支持業界流行的測試框架,如Junit和TestNG。
(5)快速構建
只需要一些配置,之後用一條簡單的命令就能讓Maven幫你清理、編譯、測試、打包、部署,然後得到最終產品。

2. Maven 的安裝與配置

在安裝 maven 前,先保證你安裝了JDK。

2.1 Maven 下載

Maven官方下載地址:http://maven.apache.org/download.html
當前最新版本:Maven 3.2.2


2.2 安裝

(1)Windows平臺
a. 解壓發佈包(apache-maven-3.2.2-bin.zip),假定爲D:\apache-maven-3.2.2。
b. 添加M2_HOME的環境變量,設置變量的值爲D:\apache-maven-3.2.2。
c. 更新Path的環境變量,追加 %M2_HOME%\bin; 到Path的變量值上。
d. 可選,添加MAVEN_OPTS的環境變量,設置變量的值爲:-Xms256m -Xmx512m.

(2)在Linux平臺安裝
a. 解壓安裝

tar -xzvf apache-maven-3.2.2-bin.tar.gz -C /var/lib

b. 設置環境變量

打開/etc/profile,在文件最後添加
#set maven environment
M2_HOME=/var/lib/apache-maven-3.2.2
export MAVEN_OPTS="-Xms256m -Xmx512m"
export PATH=$M2_HOME/bin:$PATH
c. 要使配置生效
source /etc/profile

可參考http://maven.apache.org/download.html

2.3 檢測安裝是否成功

執行命令:mvn –version


2.4 配置maven本地倉庫的路徑

本地倉庫默認是在${user.home}/.m2/repository目錄下,可通過修改%M2_HOME%\conf\setting.xml進行更改。
打開%M2_HOME%\conf\setting.xml文件,在<settings>標籤下添加,<localRepository>/path/to/local/repo</localRepository>


3. 用Maven 命令創建一個簡單的Maven項目

3.1 構建一個簡單Maven項目

mvn archetype:generate -DgroupId=com.zing.helloworld -DartifactId=helloworld -Dpackage=com.zing.helloworld -Dversion=1.0-SNAPSHOT -Dversion=1.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart

即可在當前目錄創建一個簡單的maven項目,當你第一次運行 maven 的時候,它會從網上的 maven 庫 (repository) 下載需要的程序,存放在你電腦的本地庫 (local repository) 中,所以這個時候你需要有 Internet 連接。

maven的大致結構如下:
helloworld  
|-- pom.xml  
`-- src  
    |-- main  
    |   |-- java  
    |   |   `-- com  
    |   |       `-- zing  
    |   |           `-- app  
    |   |               `-- App.java  
    |   `-- resources  
    |       `-- META-INF  
    |           `-- application.properties  
    `-- test  
        `-- java  
            `-- com  
                `-- zing  
                    `-- app  
                        `-- AppTest.java 

maven 的 archetype 插件建立了一個 helloworld 目錄,這個名字來自 artifactId 。在這個目錄下面,有一個 Project Object Model(POM) 文件 pom.xml 。這個文件用於描述項目,配置插件和管理依賴關係。
源代碼和資源文件放在 src/main 下面,而測試代碼和資源放在 src/test 下面。

3.2 查看pom.xml

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.zing.helloworld</groupId>
  <artifactId>helloworld</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>helloworld</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

groupId, artifactId 和 version 這三個元素定義了一個項目基本的座標。
 
groupId 定義了項目屬於哪個組,這個組往往和項目所在的組織或公司存在關聯。
artifactId 定義了當前Maven項目在組織中唯一的ID, 可以理解爲項目中的模塊, 模塊爲Maven中最小單位構件。
version 項目的版本。

3.3 構建和運行程序

cd helloworld
mvn package

這個時候, maven 在 helloworld 下面建立了一個新的目錄 target/ ,構建打包後的 jar 文件 helloworld-1.0-SNAPSHOT.jar 就存放在這個目錄下。編譯後的 class 文件放在 target/classes/ 目錄下面,測試 class 文件放在 target/test-classes/ 目錄下面。

爲了驗證我們的程序能運行,執行下面的命令:

java -cp target/helloworld-1.0-SNAPSHOT.jar com.zing.helloworld.App

運行成功!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章