首页 > Java > 工具篇 > 项目管理工具:Maven教程
2014
10-12

项目管理工具:Maven教程

项目管理工具:Maven教程15

一、Maven简介

Maven是一个跨平台的项目管理工具,主要用于Java项目的构建、依赖管理。

1、项目构建

在进行软件开发的过程中,我们都在重复相同的开发步骤:编码 –> 编译 –> 测试 –> 生成文档 –> 打包发布。实际上除了编写源代码,其他步骤完全是重复一些琐碎的工作,这些琐碎的工作就是构建。

那为什么让软件开发人员去重复这些工作?开发人员的主要任务应该是关注商业逻辑并去实现它,而不是把时间浪费在学习如何在不同的环境中去打包,发布,Maven正是为了将开发人员从这些重复性的任务中解脱出来而诞生的。

Maven抽象了一个完整的构建过程(如下图),它帮助我们标准化构建过程。

项目管理工具:Maven教程316

2、依赖管理

几乎所有的java项目都会依赖其他jar包,随着项目的增大,jar包也会越来越多,如一个S2SH整合的项目都需要引入40+个jar包,对这些jar包的管理即依赖管理。

你可以在自己的机器上建一个本地仓库(管理jar包),项目中需要的时候可以通过一个坐标从本地仓库中直接取出需要的jar包。

另外,Maven还提供了一个中央仓库,通过坐标,可以自动下载类库并解决依赖问题。

二、Maven的使用

下面的讲解是在Myeclipse中使用Maven,关于Maven命令行的使用见《maven学习教程》一文。

1、安装Maven

1)安装JDK1.6 +

2)解压Maven到D:\DevelopKits\apache-maven-3.0.5,将bin目录添加到系统的path环境变量下。

验证是否安装成功:mvn -v,如果打印Maven版本信息则表明安装成功。

2、配置本地仓库

使用Maven管理的本地项目使用的jar包都存放在一个本地仓库中集中管理。所谓的本地仓库就是一个目录。

1)新建D:\repos\maven\repository,用该目录存放Maven项目使用到的jar包。

2)在apache-maven-3.0.5\conf目录下的settings.xml文件中指定本地仓库的位置:

<localRepository>D:\repos\maven\repository</localRepository>

这样就创建了一个本地的Maven仓库,以后本地项目中使用的jar包都可以存放在该该目录下。

3、在MyEclipse中配置Maven

配置位置:window –> preferences –> MyEclipse –> Maven4MyEclipse

如何配置见下图:

项目管理工具:Maven教程1071

4、第一个Maven工程:HelloMaven

1)在New Project中选择Maven Project:

项目管理工具:Maven教程1129

2)一路下一步到下图的界面:

项目管理工具:Maven教程1146

3)生成的Maven项目结构如下:

项目管理工具:Maven教程1167

说明:两个resources目录是博主自己添加的。另外项目中使用的JDK要和Maven使用的JDK相同。

pom.xml文件的内容如下:

<groupId>org.flyne.demo</groupId>
<artifactId>hellomaven</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.9</version><!-- 默认的是3.8版本,这儿指定4.9 -->
    <scope>test</scope>
  </dependency>
</dependencies>

4)编写HelloMaven和HelloMavenTest类:

-------------main/java/HelloMaven-------------
package org.flyne.demo.hellomaven;

public class HelloMaven
{
    public void say(){
    	System.out.println("Hello,Maven");
    }
}

-------------test/java/HelloMavenTest-------------
package org.flyne.demo.hellomaven;

import org.junit.Test;

public class HelloMavenTest {
	@Test
	public void testSay(){
		HelloMaven hw = new HelloMaven();
		hw.say();
	}
}

5)项目构建(☆)

在hellomaven项目上右击 — run as — Maven build…(带三个点的build),在弹出的对话框的Goals一栏填入下面的命令(clean、compile、test等),点击执行即可看到对应的构建工具的效果。(注:右键 — run as的菜单中也有一些快捷命令)

① 清理(clean)

等同于命令行下的:mvn clean

作用:将target文件夹下编译产生的.class文件删除,作用是清理上一次构建生成的文件。有些类似于Myeclipse中Project — clean菜单。

② 编译(compile)

作用:编译整个工程,生成的.class文件存放到target目录下。

③ 测试(test)

作用:运行test/java目录下的测试类,并生成测试报告。生成的测试报告位于surefire-reports目录下。

④ 打包(package)

作用:将Maven工程打包成jar包。生成的jar包名格式为:artifactId-version.jar。

⑤ 安装(install)

作用:将打包后生成的jar包存入本地仓库,以供其他工程使用。在本例中jar包的位置:D:\repos\maven\repository\org\flyne\demo\hellomaven\0.0.1-SNAPSHOT

项目构建后target目录下的文件和文件夹如下图所示:

项目管理工具:Maven教程2634

注:执行后面的项目构建命令时,会自动执行前面的构建命令。如执行mvn package的时候,会自动执行compile和test(但不执行mvn clean,原因见后文)。

6)如果想要在web工程中使用Maven,需要在新建工程的时候添加Maven支持。如下图:

项目管理工具:Maven教程2769


留下一个回复

你的email不会被公开。