注:本笔记基于Maven实战/许晓斌著.-北京:机械工业出版社,2010.11学习编写。若有侵权之处,麻烦联系本人删除。本人Email:hfutwjw@gmail.com。
笔记摘要:1.下载、配置maven;2.学习入门案例:编写pom.xml,编写主代码,编写测试代码;3.maven常见指令。
一、下载、配置maven
下载、配置maven之前先安装JDK,本操作默认读者已经安装过JDK。现在可以上apache官网下载Maven(http://maven.apache.org/download.html),我下载的是apache-maven-3.0.5-bin.zip,下载地址:http://download.csdn.net/detail/wjw20105314/8320829。将下载的zip压缩包解压,如我存放的目录是:G:\Program Files\Java\apache-maven-3.0.5。
现在要配置环境变量,此处有用户变量(配置的环境变量只针对当前用户,对其他用户无效)和系统变量(具有全局性,对所有用户都有效),这个读者根据具体情况定吧,我选择的是系统变量(自己个人电脑,就我一个人用)。新建一个名为M2_HOME(这种命名比较普遍吧,当然可以取其他的,只要跟下面要配置的Path变量对应就行)的变量,变量值为Maven的安装目录,我的是G:\Program Files\Java\apache-maven-3.0.5,点击“确定”保存。接着在Path变量末尾加上“%M2_HOME%\bin;”(若原先path结尾有“;”);或者“;%M2_HOME%\bin;”(若原先path结尾无“;”),点击“确定”保存。详细情况如下图所示:
图1.Maven环境配置
现在可以打开cmd(快捷键win键+R,再在运行窗口输入cmd),输入如下命令检查Maven的安装情况:
1.echo %M2_HOME%
2.mvn –v
运行结果如下,则安装配置成功。
图2.安装情况
二、学习入门案例
1.编写POM
首先创建一个名为hello-Maven的文件夹(即为Maven项目的跟目录),我的是:G:\test\maven\hello-Maven,在该文件夹里新建名为pom.xml的文件,代码如下:
<span style="font-size:14px;"><?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/maven-v4_0_0.xsd ">
<modelVersion>4.0.0</modelVersion>
<groupId>com.hfutwjw.mavenproject</groupId>
<artifactId>hello-Maven</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Maven Hello World Project</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
</span>
注意点:(1).根元素下的第一个子元素modelVersion指定了当前POM模型的版本,对于Maven 2及Maven 3来说,它只能是4.0.0;(2).groupId定义了项目属于哪个组,这个组往往和项目所在的组织或公司存在关联。譬如在googlecode上建立一个名为myapp的项目,那么groupId就应该是com.googlecode.myapp;(3).artifactId定义了当前Maven项目在组中唯一的ID;(4).version指定了hello Maven项目当前的版本——1.0-SNAPSHOT。SNAPSHOT意为快照,说明该项目处于开发中,为不稳定的版本;(5).name元素声明了项目名称,不是必须的,就是便于信息交流;(6).dependencies元素,该元素下可以包含多个dependency元素用以声明项目的依赖。这里为了完成项目的测试添加了一个依赖——groupId是junit,artifactId是junit,version是4.7。有了这段声明,Maven就能够自动下载junit-4.7.jar;(7).scope为依赖范围,此处值为test,表示该依赖只对测试有效。如果不声明依赖范围,默认值就是compile,表示该依赖对主代码和测试代码都有效。(以上部分文字摘抄自Maven实战)
2.编写主代码
Maven约定项目主代码位于src/main/java目录,创建完该目录后,再创建一个包目录,com/hfutwjw/mavenproject,最后在该目录(G:\test\maven\hello-Maven\src\main\java\com\hfutwjw\mavenproject\hellomaven)创建HelloWorld.java,代码如下:
<span style="font-size:14px;">package com.hfutwjw.mavenproject.hellomaven;
public class HelloWorld{
public String sayWelcome(){
return "Welcome to Maven";
}
public static void main(String[] args){
System.out.print(new HelloWorld().sayHello());
}
}</span>
3.编写测试代码
Maven项目中默认的测试代码目录是src\test\java,创建完该目录后,再创建一个包目录,com/hfutwjw/mavenproject,最后在该目录(G:\test\maven\hello-Maven\src\test\java\com\hfutwjw\mavenproject\hellomaven)创建HelloWorld.java,代码如下:
<span style="font-size:14px;">package com.hfutwjw.mavenproject.hellomaven;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class HelloWorldTest{
@Test
public void testSayHello(){
HelloWorld helloWorld = new HelloWorld();
String result = helloWorld.sayWelcome();
assertEquals("Welcome to Maven",result);
}
}</span>
一个典型的单元测试包含三个步骤:(1).准备测试类及数据;(2).执行要测试的行为;(3).检查结果。
三、Maven常见指令
1.编译Maven
打开cmd,进入项目根目录(cd G:\test\maven\hello-Maven),运行命令mvn clean compile,得到以下结果:
clean告诉Maven清理输出目录target/,compile告诉Maven编译项目主代码。
2.执行测试
运行mvn clean test:
3.打包和安装
运行mvn clean package,执行打包命令,将项目打包成jar类型;
运行mvn clean install,执行安装命令,将hello-Maven的构建安装到本地仓库,使得其他Maven项目也能使用。