maven 总结
1.简介
2.maven 的安装配置
3.演示入门
4.项目构建
5.依赖管理
6.分模块开发
7.私服(nexus)
一、简介:
1,是什么?
是Apache下的一个开源项目,是纯java开发的,并且只是用来管理java项目的
2,好处:
1.节省本地磁盘空间、对jar包做了统一管理、依赖管理
2.项目一键构建:编码、编译、测试(Junit)、运行、打包、部署。
3.可以跨平台
4.应用于大型项目,可以提高开发效率
二、maven 的安装配置
1,下载、安装:
- 下载地址:http://maven.apache.org/download.cgi
- 目录结构:
2,maven 环境变量配置
1。最终要运行的是 maven 软件中的 bin 目录的 mvn 命令,所以要配置 maven 的环境变量,要配置 JDK,maven3.3.9这个版本所需的JDK必须要1.7以上
2。在系统变量添加,环境变量的名称:MAVEN_HOME,变量值:就是maven软甲解压的目录F:\class32\apache-maven-3.3.9
2.2.3:把MAVEN_HOME 添加到 path 里
2.2.4:验证是否配置成功:打开 DOS 窗口:mvn -v
3,maven 仓库
2.3.1:本地仓库,自己维护,本地仓库的配置只需修改settings.xml文件就可以
2.3.2:远程仓库(私服),公司维护
2.3.3:中央仓库,maven 团队维护,两个亿数量的 jar 包
2.3.4:三种仓库的关系
三、入门演示
3.1:maven的目录结构
3.2:maven常用命令
clean:清理编译的文件
compile:编译主目录的文件
test:编译并运行 test 目录的代码
package:打包
install:把项目发布到本地仓库
deploy:发布到私服
Tomcat:run 一键启动
3.3:maven 的生命周期
Clean 生命周期:clean
Default 生命周期:compile、test、package、install、deploy
Site 生命周期:site
3.4:命令与生命周期的关系
不同生命周期的命令可以同时执行:Mvn clean package
四、项目构建:
4.1处理编译版本
在pom.xml 中添加如下代码:
五、依赖管理:
5.1:添加依赖
添加完一个依赖之后,会引入了很多相关联的 jar 包,这种情况叫做“依赖传递”
5.2:依赖版本冲突问题
不同的 jar 包,所自动依赖引入的其他 jar 包版本冲突时的使用原则
1、第一声明优先原则
2、路径近者优先原则(自己在pom文件中有单独引)
3、排除原则
4、版本锁定原则(公司中使用的)
5.3:依赖范围
5.3.1:Compile:编译(compile)时需要,测试时需要,运行时需要,打包时需要
5.3.2:Provided:编译(compile)时需要,测试(test)时需要,运行时不需要,打包时不需要
5.3.3:Runtime:编译时不需要,测试时需要,运行时需要,打包时需要
5.3.4:Test:编译时不需要,测试时需要,运行时不需要,打包时不需要
完整的pom文件内容:
六、分模块开发:
6.1:依赖范围对依赖传递造成的影响,父工程来管理(聚合)
6.2:模块结构
父工程(pom):
大部分/公共的依赖都在父工程中添加,只有某个子模块中使用的,可以在该子模块中单独引入依赖
公共层(common)
业务/启动层(service)
其他功能模块
七、私服(nexus)
7.1:安装、启动、登录
7.1.1:安装 nexus
7.1.2:启动 nexus 服务
启动失败的解决方法
7.1.3:登录 nexus
用户名/密码 admin/admin123
7.2:仓库类型
Virtual 虚拟仓库
Proxy 代理仓库
Hosted 宿主仓库 本地仓库
Group 组
7.3:上传 jar 包 到私服
7.3.1:修改 settings.xml 文件
修改项目指定maven的settings.xml 配置文件,配置连接私服的用户和密码,此用户名好密码用于私服校验,因为私服需要知道项目中配置的是否和私服中的一致
7.3.2:配置项目中的 pom.xml
配置私服查看的地址,本公司的 jar 包会上传到私服的宿主查看,根据工程的版本号决定上传到哪个宿主仓库,如果版本为 release 则会上传到私服的 release 仓库,如果版本为 snaphost 则上传到私服的 snaphost 仓库
7.3.3:执行 deploy 命令发布到私服
7.4:从私服上下载 jar 包
7.4.1:修改 settings.xml
7.4.2:删除本地仓库中的 dao 层jar包
7.4.3:更新maven依赖
出现以下信息说明已经成功