Maven的使用

1、Maven介绍
Maven是Apache下的一个开源项目,它是一个项目管理工具,它用于对java项目进行项目构建、依赖管理及项目信息管理。当前使用Maven的项目在持续增长。
Maven包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。


· 项目对象模型 (Project Object Model)
通过pom.xml定义项目的坐标、项目依赖、项目信息、插件目标等。
·依赖管理系统(Dependency Management System)
通过定义项目所依赖组件的坐标由maven进行依赖管理。
比如:项目依赖struts2.3.24,通过在pom.xml中定义依赖即可将struts2的jar包自动加入工程:
pom.xml中定义依赖如下:
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.3.24</version>  
</dependency>
·一个项目生命周期(Project Lifecycle)
一个软件开发人员每天都在完成项目的生命周期:清理、编译、测试、部署,有的手工完成,有的通过Ant(也是一个项目构建工具)脚本自动完成,Maven将项目生命周期抽象统一为:清理、初始化、编译、测试、报告 、打包、部署、站点生成等。
maven就是要保证一致的项目构建流程,通过执行一些简单命令即可实现上边生命周期的各各过程。
·一组标准集合
maven将整个项目管理过程定义一组标准,比如:通过maven构建工程有标准的目录结构,有标准的生命周期阶段、依赖管理有标准的坐标定义等。
·插件(plugin)目标(goal)
maven 管理项目生命周期过程都是基于插件完成的。
2、Maven的下载与安装
官网下载之后,解压。目录结构如下:
bin目录 mvn.bat (以run方式运行项目)、 mvnDebug.bat(以debug方式运行项目 )
boot目录 maven运行需要类加载器 
conf目录 settings.xml 整个maven工具核心配置文件 
lib目录 maven运行依赖jar包
3、配置
环境变量配置
本地仓库配置
maven工作需要配置仓库,本地的项目通过maven从远程仓库(可以理解为互联网上的仓库)下载jar包并存在本地仓库,本地仓库 就是本地文件夹,当第二次需要此jar包时则不再从远程仓库下载,因为本地仓库已经存在了,可以将本地仓库理解为缓存,有了本地仓库就不用每次从远程仓库下载了。
本地仓库 :用来存储从远程仓库或中央仓库下载的插件和jar包,项目使用一些插件或jar包,优先从本地仓库查找 
远程仓库:如果本地需要插件或者jar包,本地仓库没有,默认去远程仓库下载。
中央仓库 :在maven环境内部内置一个远程仓库地址http://repo1.maven.org/maven2 ,它是中央仓库,服务于整个互联网,它是由Maven自己维护,里面有大量的常用类库,并包含了世界上大部分流行的开源项目构件。
本地仓库没有的jar包Maven默认从中央仓库下载。本地仓库是用来存放联网下载maven的插件和jar包,默认本地仓库: ${user.home}/.m2/repository ,通过 MAVE_HOME/conf/settings.xml灵活配置
4、Maven常用命令
编译命令 mvn compile 
进入到项目 pom.xml 所在目录,才能运行maven的命令。编译后 .class文件在 target/classes 下 
测试命令 mvn test 。执行所有测试用例方法, 重新编译 
清除命令 mvn clean 。清除target目录 (清除所有编译结果或者打包结果 ),清理后编译。
打包命名 mvn package。java项目生成 jar包, web项目生成war包 
默认生成jar包名称 : artifactId-version.jar 
安装命令:安装命令 mvn install  将工程打包后发布到本地仓库
5、Maven依赖管理
(1)、POM管理
POM即项目对象模型 (Project Object Model),在POM中定义项目依赖的坐标、项目信息、项目构建等配置,一个pom.xml文件定义了一个Maven项目。POM中包含了四类描述和配置,如下图:


第一部分: POM Relationships 关系 
Coordinates 坐标: 在仓库中唯一标识项目位置三个参数 
<groupId> 项目名称
<artifactId> 模块名称
<version> 版本号
Aggregation 聚合(多模块) : 将项目分解为多个不同模块 
Inheritance 继承 : 项目之间继承,实现POM复用 
Dependencies 依赖: 项目依赖另一个项目进行编译或者运行 
第二部分: Project Information 项目信息 
name :项目名称 
desciption: 项目描述
第三部分: Build settings  构建配置
properties : 配置属性 
build :构建项目需要插件配置 
packaging :打包方式 jar、war、pom (使用继承)
reporting : 报表
第四部分: Build Environment 构建环境 (在依赖、构建、运行 生效配置 )
Distribution Management :版本锁定 
Profile : 灵活自定义配置,在特定情况激活
POM基本配置
pom.xml是Maven项目的核心配置文件,位于每个工程的根目录,基本配置如下:
<project > :文件的根节点 .
<modelversion > : pom.xml使用的对象模型版本 .
<groupId > :项目名称,一般写项目的域名
<artifactId > :模块名称,子项目名或模块名称
<version > :产品的版本号 . 
<packaging > :打包类型,一般有jar、war、pom 等 
<name > :项目的显示名,常用于 Maven 生成的文档。  
<description > :项目描述,常用于 Maven 生成的文档
(2)、坐标管理
maven通过坐标定义每一个构件,在pom.xml中定义坐标:
groupId:定义当前Maven项目名称 
artifactId:定义项目模块 
version:定义当前项目的当前版本
(3)、依赖管理
添加依赖:通过坐标导入依赖
传递依赖:A依赖B、B依赖C,将A中导入B后会自动导入C,C是A的传递依赖
依赖冲突:锁定版本

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值