您的位置:首页 > 其它

Maven 学习笔记(1)入门篇

2014-08-15 00:29 411 查看

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




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