Maven简介
什么是Maven
Maven是apache下的开源项目,项目管理工具,管理java项目。1、项目对象模型 (Project Object Model)
POM对象模型,每个maven工程中都有一个pom.xml文件,定义工程所依赖的jar包、本工程的坐标、打包运行方式。2、依赖管理系统(基础核心 )
maven通过坐标对项目工程所依赖的jar包统一规范管理。3、maven定义一套项目生命周期
清理、初始化、编译、测试、报告 、打包、部署、站点生成。4、一组标准集合
强调:maven工程有自己标准的工程目录结构、定义坐标有标准。5、maven 管理项目生命周期过程都是基于插件完成的
Maven仓库
1、中央仓库
就是远程仓库,仓库中jar由专业团队(maven团队)统一维护。中央仓库的地址:http://repo1.maven.org/maven2/2、本地仓库
相当于缓存,工程第一次会从远程仓库(互联网)去下载jar 包,将jar包存在本地仓库(在程序员的电脑上)。第二次不需要从远程仓库去下载。先从本地仓库找,如果找不到才会去远程仓库找。3、私服
在公司内部架设一台私服,其它公司架设一台仓库,对外公开。
Maven环境搭建
- Maven下载
可以到maven的官网下载 http://maven.apache.org/download.cgi
本地仓库配置
打开maven的安装目录中conf/ settings.xml文件,在这里配置本地仓
<localRepository>D:\repository_ssh</localRepository>
eclipse配置Maven
1、配置Maven的安装目录
进入eclipse ,选择菜单windows - Preferences , 在左侧的树状导航中
点击add按钮,弹出窗口后选择maven的安装目录
然后点击Apply
2、配置User Settings
选择左侧树形导航的User Settings ,选择Maven目录下conf下的settingsxml
然后点击Update Settings 、Reindex 和Apply按钮.重建本地仓库索引
选择菜单 window –> show View
选择 Rebuild Index 重新创建索引
Maven入门
创建工程
1、 选择菜单 File ->new -> Other
选择Maven下的Maven Project, Next2、 选中下图红框部分的复选框(跳过骨架),next
3、定义工程坐标
maven对所有工程管理基于坐标进行管理。
坐标包括:
Group Id:项目的名称,项目名称以域名的倒序,比如:com.thw.mavendemo
Artifact Id:模块名称(子项目名称)
Version:模块的版本,snapshot(快照版,没有正式发行)、release(正式发行版本)
输入后,Finish 。完成后如下图
工程目录结构说明:
/src/main/java 主体程序 java源文件(不要放配置文件)
/src/main/resources 主体程序所需要的配置文件(不要放java文件)
/src/test/java 单元测试程序 java源文件
/src/test/resources 单元测试程序所用的配置文件
/target 编译输出目录 (工作日志:class文件)
pom.xml Maven进行工作的主要配置文件。
项目生命周期
Maven有三套相互独立的生命周期,分别是:clean、default、site。clean主要是清理项目、default是Maven最核心的的构建项目、site是生成项目站点。每一个大的生命周期又分为很多个阶段。后面的阶段依赖于前面的阶段,这点有点像Ant的构建依赖。生命周期本身相互独立,用户可以仅仅调用生命周期的某一个阶段,也就是说用户调用了default周期的任何阶段,并不会触发clean周期以及site周期的任何事情。三大生命周期蕴含着小小的阶段,我们按顺序看一下:
(1)clean周期:
pre-clean:准备清理
clean:真正的清理工作
post-clean:执行清理后的一些后续工作
(2)default周期:
validate:验证
initialize:初始化配置
generate-sources:生成源代码编译目录
process-sources:处理项目主资源文件,复制资源文件到outputclasspath
generate-resources:生成资源目录
process-resources:处理资源文件
complie:编译源代码
process-classes:处理编译后文件
generate-test-sources:生成测试目录
process-test-sources:处理项目测试资源文件,复制测试资源文件到outputclasspath
generate-test-resources:生成测试资源文件
process-test-resources:处理测试资源文件
test-compile:编译测试代码
process-test-classes:处理测试代码
test:单元测试运行测试代码
prepare-package:打包前的准备
package:将编译好的代码打包成为jar或者war或者ear等等
pre-integration-test:准备整体测试
integration-test:整体测试
post-integration-test:为整体测试收尾
verify:验证
install:安装到本地Maven库
deploy:将最终包部署到远程Maven仓库
(3)site周期:
pre-site:准备生成站点
site:生成站点及文档
post-site:站点收尾
site-deploy:将生成的站点发布到服务器上
- 常见命令
compile:编译
clean:清理,将target下的class文件清理
test: 执行单元测试类,执行src/test/java下的类
package :将java工程打成jar、war。
install:安装命令,将将程的jar发布到本地仓库
发布到仓库,目录按照本工程定义的坐标生成目录