maven基础和maven高级应用
maven基础和maven高级应用
maven基础
https://www.bilibili.com/video/BV1uJ411k7wy?p=892
-
892概述 (废话)
-
893 核心功能一-依赖管理:
只需要导入jar包坐标,自动引入maven仓库中的文件,不需要放入项目中,节省空间
-
894 核心功能二-一键构建(项目构建):
-
构建概念:
-
一键构建:
-
-
895 maven安装 :(视频略)
blog:https://www.jianshu.com/p/245f22be230f
以及:https://blog.****.net/github_37759996/article/details/90748461中的本地仓库命令:
mvn help:system
-
896 maven仓库的种类及其依赖关系:
三种及其依赖关系:
设置本地仓库目录上文blog有讲
也有分为两种的说法:见下文高级应用第一讲
-
897 maven的标准目录结构:
项目普遍具有的四个部分:
-
核心代码部分
-
配置文件部分 对应maven=>
-
测试代码部分
-
测试配置文件
- 898 maven常用命令行命令:
- mvn clean:清除编译好的target目录(项目的编译信息)。在实际开发中,拿到一个他人的maven项目后,第一件事就是执行该命令删除target,因为他人电脑环境编译好的classes不一定适用自己电脑的环境
- mvn compile:编译maven项目的核心代码部分,生成target目录和其子目录classes
- mvn test:编译maven项目的测试代码同时还会编译核心代码部分,执行该命令会生成完整的target目录
- mvn package:打包路径下的maven项目,生成完整的target目录并生成包文件放在target目录中。pom.xml中
<packaging>
标签指定该命令生成的文件类型 - mvn install:包路径下的maven项目,生成完整的target目录并生成包文件放在target目录中,同时将该maven项目放入电脑的本地仓库中
-
899 maven一键构建的步骤:
编译→测试→打包→安装→发布(mvn deploy) 其他四步对应上述几个命令。同时引出三个生命周期:
-
默认生命周期(重要):
-
清理生命周期:
-
站点生命周期(不常用)
-
900 maven概念模型图及解析:
-
901 idea集成maven插件:
主要是Runner中的一条属性要注意:-DarchetypeCatalog=internal
-
902 idea使用骨架创建maven的Java工程:
archetype-quickstart骨架
同时注意资源文件夹的创建
-
903 idea不使用骨架创建maven的Java工程:
对比得出:创建Java工程时尽可能不使用骨架
-
904 idea使用骨架创建maven的web工程:
archetype-webapp骨架
Java核心代码目录、配置资源目录、测试目录、测试配置资源目录都需要自行配置
-
905 maven工程指定web资源包,该步骤还可以添加web资源包(SpringMVC课程讲述的方法)
-
906 maven中央仓库寻找所需的jar包依赖配置,及idea中生命周期和对应插件所在窗口(Maven Project)的讲解,同时引出jar冲突。
-
907 解决servlet的jar冲突:
pom.xml文件中依赖的子标签
<scope>
配置作用域 -
908 maven工程运行环境修改:
<build>
标签及其子标签<plugins>
创建动态模板:Live Templates快速配置运行环境
maven高级应用
https://www.bilibili.com/video/BV1WZ4y1H7du?p=201
- 201 maven知识回顾:
-
仓库类型:
-
依赖范围(
<scope>
标签):难点默认为compile。
其中编译classpath对应为src目录下的main目录,测试classpath对应为test目录,
-
202 maven依赖传递:
比如:
-
203-207 依赖冲突及解决:
-
203 依赖冲突概念:
-
204-207 依赖冲突的三种解决方法:
-
1、使用maven提供的依赖调解原则:
-
204 第一声明者原则:(基本不用)
即pom.xml文件中依赖导入的语句声明先后顺序
-
205 路径近者优先原则:
即pom.xml文件中直接声明的直接依赖优先。
-
-
2、206 排除依赖:
<dependency>
标签的子标签<exclusions>
标签将传递过来的依赖排除出去: -
3、207 版本锁定:(重点)
使用方法:
注意:
且
<dependency>
标签中不需要使用<version>
标签指定版本了
-
- 208-215 基于maven构建ssm工程案例:
-
208 数据库环境搭建
-
209 maven项目实现步骤分析
-
210 创建项目并配置pom.xml
使用骨架创建,并添加一个properties参数:name=archetypeCatalog,value=internal。(即上文第一部分第9点的内容,配置了第9点就不需要添加该参数)
-
211-213 spring和mybatis整合
-
211 整合步骤1:
domain的POJO类、dao层的Mapper接口、Mapper映射xml文件编写(不推荐使用该方法,更推荐使用注解方式)
-
212 整合步骤2:
service层接口及实现类纯注解方式编写并使用@Transactional注解纳入Spring事务管理(不灵活,更推荐使用xml方式)、Spring关于数据源配置文件:applicationContext-dao.xml(替换mybatis的SqlConfig.xml功能,注意别名功能的注入)、Spring关于Service配置文件:applicationContext-service.xml
-
213 测试整合:
引入Spring整合Junit的测试
-
-
214 加入SpringMVC配置整合:
controller层编写、spring-mvc.xml配置文件编写、编写前端页面、编写web.xml文件(因为有两个spring配置文件,故全局监听器处需要修改)
-
215 部署到Tomcat测试
- 216-221 分模块构建maven项目:(重点)
-
216分析:
两种拆分方式:
-
217 继承:
-
218 聚合:
Maven Project窗口实现聚合后的清理和打包
继承与聚合是没有联系的
-
219-221工程案例实现上述知识:
-
219 工程创建:
自动继承、聚合的创建方法。继承的子工程会有不使用jar包坐标,所以默认不在父工程添加坐标,只锁定版本;在子工程中引入坐标,同时也不需要每个子工程都添加坐标,只需要一个子工程添加坐标,其他需要的子工程引入有坐标的那个子工程即可。
-
220 完善工程代码:
dao子工程就引入applicationContext-dao.xml这个spring配置文件,service子工程就引入applicationContext-service.xml这个spring配置文件,
-
221 部署至Tomcat:
:war不支持热部署;:war exploded支持热部署。
运行后会将非web子工程打成jar包引入target目录,所以web.xml中的全局监听器能找的两个spring配置文件。
-
- 222-228 maven私服知识及第三方jar包安装至本地仓库和私服(222应该为安装nexus视频,但上传错了)
-
222-226 maven私服:
-
222 安装和卸载私服。视频不见了,看https://www.bilibili.com/video/BV1Vx411d72W?p=15这个视频
-
223 nexus仓库类型:
四种类型:
-
224 nexus仓库和磁盘路径:
本地路径与nexus仓库路径的对应;
-
225 将项目发布到私服:
操作步骤:
第一步的
<server>
标签有具体格式和位置要求第二步哪个module要上传至私服就在哪个pom中配置
第三步也是在对应项目中运行命令
注意:上传至那个具体的nexus仓库由pom中的
<version>
标签决定,默认是SNAPSHOT -
226 从私服下载jar包至本地仓库:
操作步骤:
**后pom导入坐标会首先从私服寻找,私服没有则私服会从中央仓库下载。
-
-
227-228 第三方jar包安装至本地仓库和私服
maven中央仓库不是有所有的jar包,比如没有oracle驱动jar包。
解决:下载jar包至本地后安装至本地仓库或maven私服
-
227 安装至本地仓库:
在jar包所在的本地路径启动命令行运行mvn命令安装至本地仓库,命令百度。
-
228 安装至私服:
三个步骤:
-