一、 依赖管理工具
随着我们使用越来越多的框架,或者框架封装程度越来越高,项目中使用到的jar包也就越来越多。项目中,一个模块使用到上百个jar包是很正常的。一个个Jar引入工作量就会很庞大,而使用Maven引入就会高效。
1. 高效率
因为有些Jar包是黄金搭档,Maven就将这些Jar整理到同一个Maven坐标中,只要引入这个坐标就能同时引入坐标中包含的所有Jar包,这就节省了很多时间。
2. 规范
项目中需要导入的Jar包可能是由不同的组织上传的,如果A1.0.jar
是基于B2.0.jar
开发后生成的Jar包,那么此时A1.0.jar
就依赖B包的2.0版本。如果我们通过手动添加Jar包的方式引入是,可能会添加成A.1.0.jar
和B1.0.jar
,A可能就会出现依赖异常问题。而Maven将这些Jar包的版本也进行了管理,引入A的maven坐标,就不会出现版本搭配错误的问题。
二、Maven作为构建管理工具
-
你没有注意过的构建
你可以不使用Maven,但是构建必须要做。当我们使用IDEA进行开发时,构建是IDEA替我们做的。
-
脱离IDEA环境仍需构建,需要专门工具。
1.构建
Java项目开发过程中,构建指的是使用原材料生产产品的过程。
- 原材料
- Java源代码
- 基于HTML的Thymeleaf文件
- 图片
- 配置文件
- …
- 产品
- 一个可以在服务器上运行的项目
- 构建过程包含的主要的环节:
- 清理:删除上一次构建的结果,为下一次构建做好准备
- 编译:Java程序编译成*.class字节码文件
- 测试:运行提前准备好的测试程序
- 报告:针对刚才测试的结果生成一个全面的信息
- 打包
- Java工程:jar包
- Web工程:war包
- 安装:把一个Maven工程经过打包操作生成的jar包或war包存入仓库
- 部署
- 部署jar包:把一个jar包部署到Nexus私服服务器上
- 部署war包:借助相关Maven插件(例如cargo),将war包部署到Tomcat服务器上
依赖管理中要解决的具体问题:
- jar包的下载:使用Maven之后,jar包会从规范的远程仓库下载到本地
- jar包之间的依赖:通过依赖的传递性自动完成
- jar包之间的冲突:通过对依赖的配置进行调整,让某些jar包不会被导入