maven(项目管理工具系列 maven 总结二)
♣maven是什么?
♣maven下载、安装
♣了解maven仓库
♣eclipse配置maven
♣创建maven项目
♣把maven项目转化为web项目
1.maven是什么?
Maven是一个项目管理和综合工具。Maven简化和标准化项目建设过程。处理编译,分配,文档,团队协作和其他任务的无缝连接。Maven是一个比Ant更先进的项目管理工具,它采用了一种“约定优于配置(CoC)”的策略来管理项目。
不使用maven有什么问题?
1.在开发中,为了保证编译通过,我们会到处去寻找jar包,当编译通过了,运行的时候,却发现"ClassNotFoundException",我们想到的是,难道还差jar包?
2.每个Java项目的目录结构都没有一个统一的标准,配置文件到处都是,单元测试代码到底应该放在那里也没有一个权威的规范。
所以,Maven主要做了两件事:
1.统一开发规范与工具
2.统一管理jar包
总之,Maven简化和标准化项目建设过程。
2.maven下载、安装
2.1下载 Maven压缩包
maven下载地址:http://maven.apache.org/download.cgi
window系统下载*.zip压缩包,linux下载.gz压缩包。

解压到本地,因为我在写这篇教程的时候电脑就装好了,而且我下载的是maven-3.0.5,解压到如下路径(解压目录不要有中文字,不要有空格):

2.2设置系统环境变量,MAVEN_HOME
该变量指向Maven安装路径。这里我的路径是 E:\javaEdit\maven\apache-maven-3.0.5

2.3设置环境变量Path
将%MAVEN_HOME%\bin加入Path中,一定要注意要用分号;与其他值隔开
因为Maven工具的关键命令就是%MAVEN_HOME%\bin路径下的mvn.bat命令,所以为了让操作系统可以识别该命令,就要设置环境变量Path

2.4验证安装成功
打开 cmd,输入:
mvn -v

Maven 安装成功!
3.了解maven仓库
使用 Maven 之前,我们必须要了解一下 Maven 到底是怎样管理 jar 包的,这就是 Maven 仓库要干的活了。
使用 Maven 给我们带来的最直接的好处,就是统一管理jar 包,那么这些 jar 包存放在哪里呢?它们就在您的 本地仓库 中,默认地址位于 C:\Users\用户名.m2 目录下(当然也可以修改这个默认地址),下面我们就修改一下这个默认地址。
实际上我们可以将本地仓库理解成“缓存”,目的是存放jar包。开发项目时项目首先会从本地仓库中获取 jar 包,当无法获取指定 jar 包的时候,本地仓库会从 远程仓库(或 中央仓库) 中下载 jar 包,并“缓存”到本地仓库中以备将来使用。
远程仓库(中央仓库)是 Maven 官方提供的,可通过http://search.maven.org/来访问。这样一来,本地仓库会随着项目的积累越来越大。通过下面这张图可以清晰地表达项目、本地仓库、远程仓库之间的关系。

现在修改一下默认配置,将指定的目录代替掉默认的C:\Users\用户名.m2 目录,作为我们的本地仓库:
修改maven\apache-maven-3.0.5\conf\setting.xml文件:

控制台输入:
mvn help:system
如图所示效果:

执行完该命令之后, 在 E:\javaEdit\maven\Repositories\Maven 下面就会多出很多文件,这些文件就是maven从中央仓库下载到本地仓库的文件,maven已经开始为我们工作了。

4.eclipse配置maven
4.1eclipse配置maven插件
eclipse安装插件有常用两种方式,在线方式和离线方式。这两种安装方式我建议大家使用离线方式,离线方式更加方便,简单。
4.1.1在线安装:通过Help-->Install New Software的方式,输入HTTP地址来安装,简单易操作,但是也优缺点,就是下载速度慢,或者有的时候干脆搜索不到要安装的插件。使 用第一种方式来安装,输入 http 地址:http://m2eclipse.sonatype.org/sites/m2e,把选项勾上,然后等待它 下载安装,完成之后重启 eclipse 即可。

4.1.2 离线安装:
1.获得zest,m2e和m2e-extras三件文件夹,复制到eclipse安装目录的myplugins下(没有此目录则新建一个)

2.进入到eclipse中的dropins目录下,新建三个txt文件(zest.txt,m2e.txt,m2e-extras.txt)。其中每个文件内容如下:
path=E:\javaEdit\maven\apache-maven-3.0.5(需将红色的路径修改你本机的实际插件的路径地址)

重新启动eclipse,点击windowsàpreferences ,可以看到maven了。
用link方式好处:这种方式偶合性低,想卸载,只需修改下dropins目录的文件即可。
4.2配置maven
点击Installations –> add 选择maven安装目录


5.创建maven项目
在Eclipse菜单栏中点击File->New->Other->Maven
选择Maven Project,请选中Create a simple project(skip archetype selection),之后点击Next

填写Group id和Artifact id, Version默认,Packaging默认为jar,Name,Description选填,其他的不填

group Id: 该项目的开发者的域名。
artifactId:指定项目名。
packaging:指定项目打包的类型。
version:指定项目的版本。
之后点击Finish即可,如图所示:

src/main/java
:该目录主要放置java源代码;src/test/java
:该目录主要用来存放测试代码;Maven Dependencies
:这里主要放Maven管理的jar文件;target
:用来存放Maven编译好的字节码文件;pom.xml
:全称为Project Object Model
,项目对象模型,定义了项目的基本信息,用于描述项目如何构建,声明项目依赖等。src
:用来存放main和test中会使用到的其他文件等资源。
创建一个简单的maven项目,如果我们想创建一个Maven的web项目,把上面的Packaging的类型改为war,之后点击Finish即可,如图所示:

如果出现web.xml is missing and <failOnMissingWebXml> is set to true错误,则如下图解决:

6.把maven项目转化为web项目
6.1右键项目->properties
将下图中的红框处进行勾选:

6.2设置部署程序集
继续右键项目->properties->Deployment Assembly
在右键项目打开此窗口.在左侧列表中会出现一个Deployment Assembly,点击进去后 (因为test是测试使用,并不需要部署,所以可以删除)
设置将Maven的jar包发布到lib下.
项目管理工具系列:
ant(项目管理工具系列 ant 总结一)
maven(项目管理工具系列 maven 总结二)
svn(项目管理工具系列 svn 总结三)