Maven:项目管理工具
1. 项目管理工具
主要作用:为项目开发阶段对Java项目进行依赖管理和项目构建
依赖管理:对jar的管理,通过导入Maven坐标,相当于将仓库中的jar包导入当前项目中
项目构建:通过maven的命令完成项目从清理、编译、测试、报告、打包,部署这个过程
清理 -> 编译 -> 测试 -> 报告 -> 打包 -> 部署
2. 仓库类型
1.本地仓库
2.远程仓库
1.maven中央仓库 http://repo2.maven.org/maven2/
2.maven私服(公司局域网内仓库,自己搭建)
3.其他公共远程仓库 (Apache:http://repo.maven.org/maven2/)
3. maven常用命令
clean:清理
compile:编译
test:测试
package:打包
install:安装
4. maven依赖范围

1 | 依赖范围 对于编译classpath有效 对于测试classpath有效 对于运行时classpath有效 |
5. 依赖冲突
依赖传递版本不同造成依赖冲突。
*解决依赖冲突:
1.使用maven提供的依赖调解原则
第一声明优先原则:
pom文件定义依赖,以先声明的依赖为准。根据坐标导入的顺序来确定最终使用哪个传递过来的依赖
路径近者优先原则:
pom文件定义依赖,以路径近者为准
pom文件中直接定义的依赖优先于传递过来的依赖
2.排除依赖
使用exclusions标签将传递过来的依赖排除出去
1 | <dependency> |
3.锁定版本
采用直接锁定版本的方法确定依赖jar包的版本,版本锁定后不考虑依赖的生命顺序或依赖的路径,以锁定的版本为准添加到工程中。
使用方式:
1.在dependencyManagement标签中锁定依赖的版本
1 | <dependencyManagement> |
2.在dependencies标签中声明需要导入的maven坐标
1 | <!--*jar包版本已经锁定不需要再指定version,只需要导入groupID和artifactID --> |
6. maven构建SSM工程案例
1.配置数据库环境
2.maven项目构建
1.创建maven web项目
选择创建web项目时添加archetypeCatalog value:internal加快项目创建速度
2.配置pom.xml
3.实现spring+mybatis整合
创建pojo类
持久层DAO接口编写
业务层service编写
spring配置文件ApplicationContext-dao.xml编写
spring配置文件ApplicationContext-service.xml编写
4.spring-mvc配置
controller编写
springmvc.xml编写
1.组件扫描
2.视图解析器
jsp页面编写
配置web.xml文件
1.初始化配置文件
2.前端控制器
3.spring监听
7. 分模块构建maven工程分析
拆分方式:
1.按照**业务模块**进行拆分,每个模块拆分成一个maven工程;如:用户模块、订单模块、购物车模块
2.按照**层**进行拆分。如:持久层、业务层、表现层
maven工程的继承
子工程继承父工程之后,可以使用父工程引入的依赖,目的是为了*消除重复代码*
父工程的打包方式必须为pom,子工程通过parent标签进行父工程的继承
maven工程的聚合
使用<modules>标签将其他maven工程聚合到一起,进行统一操作
<modules>
<module></module>
</modules>