Maven
Maven
基于java平台的、自动化构建工具
清理:删除编译结果、为重新编译做准备
编译:java编译成class
测试:对项目中关键点进行测试、用测试代码去测试开发代码
报告:将测试的结果进行显示
打包:将项目中包含的多个文件压缩成一个文件、用于安装和部署
安装:将打成的包放到 本地仓库、供其他项目使用
部署:将打成的包方到 服务器上运行
Maven作用
- 管理jar
添加第三方jar
自动关联下载所有依赖的jar、并且不会冲突
通常下载一个jar、先在本地仓库中下载、如果本地仓库中不存在、则在联网去中央仓库或中央仓库镜像去下载
- 将项目拆分成若干个模块
Maven配置流程
- 环境变量配置-
path配置Maven的bin目录
- conf/settings.xml配置属性
配置阿里云镜像和修改本地仓库
1 | <!-- localRepository |
1 | <mirrors> |
Maven结构
src/main/java 程序功能代码
src/main/resourses 资源代码、配置代码
src/test 测试代码
pom.xml 项目对象模型(把项目看成一个对象)
1 | <!-- 大项目名--> |
Maven常见命令
- 编译命令(只编译main目录java文件)
1 | mvn compile |
- 测试
1 | mvn test |
- 打包(jar/war)
1 | mvn package |
- 存入本地仓库(供其他模块使用)
1 | mvn install |
- 删除target
1 | mvn clean |
Maven依赖
maven依赖一般都是在pom.xml中进行引入操作
1 | <dependencies> |
- 依赖的范围
complie(默认)
test
provided
- 依赖排除
我们来举个例子啊、就好比引入a.jar时他依赖于b.jar、所以会自动引入、但我们就是不想要b.jar、所以可以手动排除掉
1 | <dependency> |
- 依赖的传递
A.jar-B.jar->C.jar 要使 A.jar ->C.jar:当且仅当 B.jar 依赖于C.jar的范围是compile
- 依赖原则
路径最短优先原则
路径长度相同时:
在同一个pom.xml文件中有2个相同的依赖(覆盖):后面声明的依赖 会覆盖前面声明的依赖
如果是不同的 pom.xml中有2个相同的依赖(优先):则先声明的依赖 ,会覆盖后声明的依赖
- 多个maven项目(模块)之间依赖
现将被依赖的项目install到仓库
然后另一个项目导入依赖即可
1 | <dependency> |
- Maven统一项目jdk版本
1 | <profiles> |
- 动态配置
1 | <properties> |
1 | <dependency> |
Maven打包种类
jar
war
pom
Maven实现项目之间继承
- 父类
建立父类工程、其父类工程打包方式必须为pom
在父类中pom.xml中编写
1 | <dependencyManagement> |
- 子类
继承一个父工程、加入父工程gav
当前项目中pom.xml导入父工程pom.xml相对路径
当前项目中pom.xml使用父类依赖
1 | <parent> |
Maven的聚合
将多个子工程和起来
- 使用方法
建立一个总工程、打包方式为pom
进行配置
配置完聚合之后,以后只要操作总工程,则会自动操作 改聚合中配置过的工程
1 | <modules> |
正确的开始、微小的长进、然后持续、嘿、我是小博、带你一起看我目之所及的世界……
本文标题:Maven
发布时间:2021年06月29日 - 22:44
最后更新:2021年06月29日 - 22:46
原始链接:https://codexiaobo.github.io/posts/120011996/
许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。