您的位置:首页 > 其它

第10章 从Maven2中运行JUnit测试(第三部分 JUnit与构建过程)

2014-12-11 00:00 155 查看
第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

1、下载,解压到一个目录下

2、定义环境变量M2_HOME,指向解压目录

3、将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的约定去做,优点也是缺点吧。

来自为知笔记(Wiz)

附件列表

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: