赞
踩
概念: 一款用于管理和构建java项目的工具,是apache下的一个开源项目
作用:
1)依赖配置
依赖: 指的是当前项目运行所需要的jar包,一个项目中可以引入多个依赖
配置:
2)依赖传递
项目依赖的依赖会被自动导入
依赖分类:
排除依赖:主动断开依赖的资源,被排除的资源不需要指定版本
<exclusions>
<exclusion>
<groupId>XXX</groupId>
<artifactId>XXX</artifactId>
</exclusion>
</exclusions>
3)依赖范围
默认情况: 可以在任何地方使用(主程序范围内,测试程序范围内,是否参与打包运行(package指令范围内))。
可以通过<scope>XXX</scope>设置其作用范围
scope值 | 主程序 | 测试程序 | 打包(运行) | 范例 |
---|---|---|---|---|
compile(默认) | √ | √ | √ | log4j |
test | × | √ | × | junit |
provided | √ | √ | × | servlet-api |
runtime | × | √ | √ | jdbc驱动 |
4)生命周期
对所有的maven项目构建过程进行抽象和统一
3套相互独立的生命周期——每套生命周期包含一些阶段,阶段是有顺序的,后面的阶段依赖于前面的阶段,同一套生命周期中,当后面的阶段运行时,前面的阶段都会运行
clean:移除上一次构建生成的文件
compite:编译项目源代码
test:使用合适的单元测试框架运行测试
package:将编译后的文件打包
install:安装项目到本地仓库
执行方式
本质
生命周期是个虚拟的概念,实际上每个操作都是由插件完成的
【未完待续……maven高级部分】
【续】
概念: 分模块设计就是将项目按照功能拆分成若干个子模块
原因: 为了代码的复用性、安全性——方便项目的管理维护、扩展,也方便模块间的相互调用,资源共享
注: 要先针对模块功能进行设计,再编码。不能开发完毕,然后再进行拆分
过程: 拆分的每个maven模块为其设置坐标,在主模块pom文件中引入依赖
解决多模块开发中的问题
1)继承关系实现
概念: 继承描述两个工程间的关系,子工程可以继承父工程中的配置信息,常见于依赖关系继承。单继承,多重继承(若父子工程都配置了同一个依赖的不同版本,以子工程为准)
作用: 简化依赖配置、统一依赖管理
实现: <parent>…</parent>
步骤:
设置打包方式,在pom文件中<packaging>pom</packing>
2)版本锁定
统一管理各个依赖的版本
在父工程中指定依赖的版本号,父工程统一管理。子工程引入时无需指定版本号,变更版本时,只需在父工程中统一变更。
?父工程有了,子工程不是不需要引入了吗?——有些依赖不是所有模块都需要的
这个标签下的依赖并不会被导入,仅仅管理依赖的版本
<dependencyManagement>
<dependencies>
<dependency>
指定版本号的依赖
</dependency>
</dependencies>
</dependencyManagement>
更加方便版本管理
3)聚合
想要对一个模块进行打包:要想对一个模块进行打包,先要将其父工程或者依赖的工程安装到本地maven仓库,比较繁琐
概念: 将多个模块组织成一个整体,同时进行项目的构建
聚合工程: 一个不具有业务功能的”空“工程(有且仅有一个pom文件)
作用: 快速构建项目(无需根据依赖关系手动构建,直接在聚合工程上构建)
实现:
在聚合工程的pom文件中
<modules>
<module>聚合模块的相对路径</module>
</modules>
资源共享
概念: 架设在局域网内的特殊远程仓库,用来代理位于外部的中央仓库,解决团队内部的资源共享与同步问题
资源上传与下载:
release:发行版本,功能趋于稳定、当前停止更新
snapshot:功能不稳定、尚处于开发中版本
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。