一.高校构建作用
1.应用场景
掌握安装,第三方jar宝
2.依赖管理
3.项目构建管理
Maven优势:
- 构建触发方便
- 构建格式固定化: 要求不同代码提示功能:项目结构:src,web,webcontent
- 构建功能;maven:src,webapp 六步:
- 清理
- 编译
- 测试
- 报告
- 打包
- 部署
二.安装 要求: 本机具备java环境变量环境 maven
- bin
- boot
- conf:配置文件
- lib
修改配置文件
本地配置到idea
三.工程关键
四个属性:标识 GroupId:组织标识:公司业务
线域名到写最多不要四级 ArtifactId:产品线名_模块名:语义不可重复
Version:
-
主版本号:改变新功能永远增加
-
次版本号:功能调整.向下兼容,新增类,接口
-
修订号:修复bug例子:1.0.0
Packaging[具体打包属性] (前三个必选,第四个可选)定义规则: jar:.jar结尾 war:web工程 pom:用来继承父工程
四.创建SE工程 记得修改maven 手工创建,使用插件(当然是使用插件了!) 乌龟的屁股:龟腚(规定) 规定:必须是webappp
- 创建javase文件结构
- 补全文件结构
- 修改pom.xml
- 刷新:web多哦了蓝点
使用插件创建:jbl 一件创建
项目结构
- src:项目源文件
- 和pom.xml
- resources:项目资源配置文件
- webapp:web相关配置
- text:项目测试代码
五.依赖管理
最重要的功能 dependeency标签 gav属性 初始化scope默认范围maintext都生小
重点:编写pom.xml文件
<!--不会改变-->
<groupId>com.atheliu</groupId>
<artifactId>maven-javaee-project-03</artifactId>
<!--构建过程,部署-->
<version>1.0-SNAPSHOT</version>
<!--普通打包方式不打包pom-->
<packaging>war</packaging>
<!--声明版本号-->
<properties>
<!--第三方依赖信息说明
1.maven查询官网
2.使用maven插件
项目依赖集合
每个依赖项
[gav]依赖的信息
-->
<dependencies>
<dependency>
<groupId>
</groupId>
</dependency>
<!--具体依赖信息-->
</dependencies>
</properties>
</project>
安装插件查询,太高效了! 必须的三个属性:
扩展: 提取版本号吗,统一管理 声明称全局变量 可选属性scope引入依赖的作用域 默认:compile main text 打包和运行 text text junit @text runtime main,text不会 打包和运行 反射 mysql Class.forName()
provided main text 打包和运行不同 tamcat提供servlet
总结:直接默认值
六.依赖传递和依赖冲突
1.依赖传递
优点:
简化依赖的导入
-
减少重复依赖 -
自动管理依赖 -
确保版本正确性 不用写三遍只用写一遍 A导入依赖:自动导入依赖的依赖 2.依赖冲突 解决冲突原则: -
第一原则:谁短谁优先(引用的路径长度) -
第二原则:谁上谁优先 -
dependencies声明的先后顺序 (有重复依赖) 当发生重复依赖导入,会终止依赖传递 避免重复依赖和循环依赖 只要发生冲突,后续都不应用
七.Maven导入失败和解决方案
Maven仓库本地缓存被污染
-
访问本地仓库没有,不访问阿里镜像的问题 -
解决:一直删一直下
删除last.结尾的,多尝试几次
删除脚本工具,bat 寻找本地位置
八.构建管理 构建:java通过一系列过程,变成可执行可部署的应用程序.
主动出发场景;编译不充分 重新编译 打包 部署本地d:\rep 阿里镜像 或私服仓库 删除污染文件
命令方式构建:
** 1.必须是进入项目根目录* ** 2.部署必须是jar形式*** web不行
语法:
命令方式触发: mvn clean :删除target mvn compile :生成target mvn text :测试源代码 mvn site :生成一个展示页面 mvn deploy:只打包,上传私服
可视化构建:
-
清理
-
编译
-
测试
-
打包
-
报告
-
部署
构建命令周期: 触发周期后的命令,会自动触发同一周期前的命令
简单触发构建命令过程 有序构建容器
清理 clean 构建 compile tast package install /deploy 报告 siye
八.maven的继承
作用:在父工程中统一依赖信息,进行统一版本管理
背景:多个模块同i框架
思路1:在父工程中引入依赖 思路2:父工程不引入依赖,只作依赖声明 ga ga
聚合(modules)
组织到一个父工程,统一构建子工程,统一管理