第10章 從Maven2中運行JUnit測試(第三部分 JUnit與構建過程)

第10章 從Maven2中運行JUnit測試

10.1 Maven的功能

Maven不只僅是一個構建工具,如下是Maven的一些核心原則。

10.1.1 約定優於配置
約定優於配置(Convention over configuration)是Maven項目最強大的原則之一。

10.1.2 強大的依賴管理
Maven經過中心倉庫來存儲、管理依賴,本地工程經過本地倉庫與中心庫下載各類依賴。
10.1.3 Maven的構建生命週期
Maven另外一條強大原則是 構建生命週期(build lifecycle)。

3個內置生命週期:
Default:用於生成項目的工做。
Clean:用於清理項目。
Site:用於生成項目的文檔。

每一個生命週期都包含了幾個階段(phase),
在Default生命週期的全部階段以下:
Validate:驗證項目是正確的,而且全部必要的信息都是可得到的。
Compile:編譯項目的源代碼。
Test:使用一個合適的單元測試框架來測試編譯好的源代碼。這些測試應該不會要求代碼被打包或部署。
Package:將編譯好的代碼打包成能夠發佈的格式,如JAR。
Integration test:若是有必要,將發佈包處理和部署到一個能夠運行集成測試的環境中。
Verify:運行任何檢查來證明該發佈包是有效的並符合質量標準的。
Install:將發佈包安裝到本地倉庫中,以便用做其餘本地項目中的一個依賴庫。
Deploy:在一個集成或者發佈環境,爲了與其餘的開發人員和項目進行共享,將最終版的發佈包複製到遠程倉庫中。

若是調用以上的任何一個,他們都會從最開始的validate運行,依次運行,直到你調用的那個。好比,mvn test,會依次運行validate、compile、test。

10.1.4 基於插件的架構
Maven是一個基於插件的框架,它的功能都要插件去完成。(固然,核心的插件安裝Maven時會一塊兒安裝)
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.cactus</groupId>
      <artifactId>cactus.integration.maven2</artifactId>
      <version>1.8.1-SNAPSHOT</version>
    </plugin>
  </plugins>
</build>

10.1.5 Maven項目對象模型
Maven配置文件pom.xml,取自於Project Object Model的簡寫。
簡單的pom.xml

pom.xml是能夠繼承的,下面是一個父項目的配置( 注意packaging的類型),包含一個子模塊example-module( 目錄名,而不是artifactId):

下面是子模塊的pom.xml,它繼承了上面的pom.xml
<project>
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.manning.junitbook</groupId>
    <artifactId>example-pom</artifactId>
    <version>2.0-SNAPSHOT</version>
  </parent>
  <artifactId>example-child </artifactId>
</project>

pom能從父pom繼承全部的元素:
包括依賴庫、開發者和貢獻者、插件列表、報告列表、ID匹配的插件執行、插件配置

10.2 創建一個Maven項目

安裝Maven
一、下載,解壓到一個目錄下
二、定義環境變量M2_HOME,指向解壓目錄
三、將M2_HOME\bin 添加到 PATH 中

Maven配置文件settings.xml
settings.xml默認在M2_HOME\conf錄入下,將它copy一個到的配置用戶目錄的.m2目錄下,在個人本機是這裏:「C:\Users\Neil\.m2」
而後打開它,在settings下加入,指定本地庫的目錄。
<localRepository>D:\maven_repo</localRepository>
固然也能夠作其餘設置,好比設置Nexus私服等,使得你本地全部的項目均可以使用這個私服。

用命令行創建Maven項目
用命令行進入咱們的工做目錄,而後執行如下命令:
mvn archetype:create -DgroupId=com.manning.junitbook -DartifactId=maven-sampling -DarchetypeArtifactid=maven-artifact-mojo
這個命令會依賴maven-archetype-plugin插件,若是沒有會自動下載,下載完成後自動執行命令,建立Maven示例項目。

固然這是經過命令行創建的,咱們須要把它導入Eclipse,才能在IDE裏寫代碼,以下圖:
固然這還有個前提,就是安裝m2e

安裝m2e插件,若是你用的是標準的JavaEE Eclipse(即已有WTP),請安裝以下圖版本:

在Eclipse裏建立Maven項目
這個Step by Step 就行了 不廢話了。

設置m2e
在Eclipse菜單選擇Windows->Preferences->Maven

在Maven->Installations 默認使用Eclipse自帶的maven,這裏能夠設置使用本身的maven。

在Maven->User Settings設置使用哪一個Maven配置文件和本地庫路徑

m2e功能介紹


pom.xml介紹
上面介紹了約定大於配置、Maven項目目錄結構、各類安裝配置,下面還剩一個pom.xml,介紹一下。
前面介紹了 Maven項目對象模型,而pom.xml就是描述了這個模型


書裏提到的其餘東西:
將項目eclipse話,主要是生成兩個eclipse配置文件.project 和 .classpath
mvn eclipse:eclipse -DdownloadSources=true

生成項目的站點文檔
mvn site

10.3 Maven插件的引入

mvn clean
使用maven-clean-plugin插件,將會清理以前對項目的各類操做,好比清理target目錄。

10.3.1 Maven的Compiler插件
mvn compile
使用maven-compiler-plugin插件,編譯代碼。須要的配置以下:
        < build >
             < plugins >
                   < plugin >
                         < groupId > org.apache.maven.plugins </ groupId >
                         < artifactId > maven-compiler-plugin </ artifactId >
                         < version > 2.0 </ version >
                         < configuration >
                               < source > 1.5 </ source >
                               < target > 1.5 </ target >
                         </ configuration >
                   </ plugin >
              </ plugins >
       </ build >
在上面的附件pom.xml中好像沒有這段,其實它是繼承了父pom的配置,因此自身就不須要配置了,除非它改變了設置。

10.3.2 Maven的Surefire插件
mvn clean test
使用maven-surefire-plugin插件,來執行單元測試。若是你只想執行某些測試,能夠經過配置統配的形式來設置:
< build >
             < plugins >
                   < plugin >
                         < artifactId > maven-surefire-plugin </ artifactId >
                         < version > 2.5 </ version >
                         < configuration >
                               < includes >
                                     < include > **/*Test*.java </ include >
                               </ includes >
                         </ configuration >
                   </ plugin >
             </ plugins >
       </ build >
同compile的配置同樣,上面的pom.xml繼承了父pom的設置。

10.3.3 使用Maven生成HTML格式的JUnit報告
mvn surefire-report:report
使用maven-surefire-report-plugin插件,能夠生成測試報告,配置以下:
< build >
             < plugins>
                   < plugin >
                         < groupId > org.apache.maven.plugins </ groupId >
                         < artifactId > maven-surefire-report-plugin </ artifactId >
                         < version > 2.5 </ version >
                   </ plugin >
             </ plugins >
       </ build >

10.4 Maven的不足
Maven的不足也就是Ant的長處,Ant只是一個構建工具,你能夠按任意的方式去作,而用Maven就必須按照Maven的約定去作,優勢也是缺點吧。






附件列表

相關文章
相關標籤/搜索