maven教程

来源:互联网 发布:刘邦诛杀功臣知乎 编辑:程序博客网 时间:2024/06/15 14:25
一.什么是maven。
Maven是一个项目管理工具,是apache下的开源项目,纯java开发,管理java项目。

二.maven开发中作用
1、项目对象模型 (Project Object Model)
POM对象模型,每个maven工程中都有一个pom.xml文件,定义工程所依赖的jar包、本工程的坐标、打包运行方式。。
2、依赖管理系统(基础核心 )
maven通过坐标对项目工程所依赖的jar包统一规范管理。
3、maven定义一套项目生命周期
清理、初始化、编译、测试、报告 、打包、部署、站点生成
4、一组标准集合
强调:maven工程有自己标准的工程目录结构、定义坐标有标准。
5、maven 管理项目生命周期过程都是基于插件完成的
开发中使用tomcat的插件。

三.maven仓库介绍
1.本地仓库
相当于缓存,工程第一次会从远程仓库(互联网)去下载jar 包,将jar包存在本地仓库(在程序员的电脑上)。第二次不需要从远程仓库去下载。先从本地仓库找,如果找不到才会去远程仓库找。
2.远程仓库
仓库中jar由专业团队(maven团队)统一维护。maven安装默认仓库的地址:http://repo1.maven.org/maven2/(其实也叫中央仓库)
3.私服仓库
在公司内部架设一台私服,私服代理广域网上的远程仓库,供局域网内的Maven用户使用,当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。我们还可以把一些无法从外部仓库下载到的构件上传到私服上。
特点:
1.节省自己的外网带宽:减少重复请求造成的外网带宽消耗
2.加速Maven构件:如果项目配置了很多外部远程仓库的时候,构建速度就会大大降低
3.部署第三方构件:有些构件无法从外部仓库获得的时候,我们可以把这些构件部署到内部仓库(私服)中,供内部maven项目使用
4.提高稳定性,增强控制:Internet不稳定的时候,maven构建也会变的不稳定,一些私服软件还提供了其他的功能
5.降低中央仓库的负荷:maven中央仓库被请求的数量是巨大的,配置私服也可以大大降低中央仓库的压力

四.maven安装
1.下载maven
去apache官方网站可以下载
2.配置maven环境变量
在path里加入maven的bin的路径

3.本地仓库配置


在maven的安装目录中conf/settings.xml文件,在这里配置本地仓库


全局setting:在maven的安装目录中conf/ settings.xml文件.所有配置应用于所有项目。
用户setting:${user.dir}/.m2。某些用户需要对maven特殊设置,用户可以自定义setting.
一般统一使用全局setting.xml
4.在eclipse安装maven插件

一些高版本的eclipse,maven插件自动有了


5.配置maven安装程序

*一些高版本的eclipse,内置了maven程序。一般不用内置的maven程序,为了在项目中统一maven版本。


6.指定user setting


7.通过eclipse浏览本地仓库





五.如何用maven创建java工程
1.创建一个maven工程

2.选择原型(骨架)
maven内部提供很多项目原型,方便去创建项目。

3.定义maven工程的坐标
maven对所有工程管理基于坐标进行管理。
坐标包括:
group id:项目的名称,项目名称以域名的倒序,比如:cn.aa.crm
artifactid:模块名称(子项目名称)
version:模块的版本,snapshot(快照版,没有正式发行)、release(正式发行版本)

4.maven工程目录结构

*新创建的maven工程一个完整的目录结构


project
/src/main/java    主体程序 java源文件(不要放配置文件)
/src/main/resources 主体程序所需要的配置文件(不要放java文件)
/src/test/java     单元测试程序 java源文件
/src/test/resources单元测试程序所用的配置文件
/target 编译输出目录
/pom.xml
*手动指定输出目录:

 

5.设置编译版本
使用jdk1.7
 在pom.xml设置:

Update project:



六.测试maven命令
maven通过命令对工程进行编译、测试、打包、发布、运行。
mvn:运行不调试
mvnDebug:调试运行
mvn compile:编译
mvn clean:清理,将target下的class文件清理
mvn test:执行单元测试类,执行src/test/java下的类
mvn package :将java工程打成jar、war。
mvn install:安装命令,将将程的jar发布到本地仓库,目录按照本工程定义的坐标生成目录

1 0