资料:快速掌握:全新SSM+Spring Boot+MyBatis-Plus实战精讲https://www.wolai.com/v5Kuct5ZtPeVBk4NBUGBWF
B站:BV1AP411s7D7
1.1
Maven 为 Java 项目构建管理、依赖管理的工具,使用 Maven 可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。
项目构建是指将源代码、配置文件、资源文件等转化为能够运行或部署的应用程序或库的过程!
MAVP是Groupid(组织 com.{公司/BU }.业务线.[子业务线]),Artifactid(微服务 项目+模块,其他名字),Version(主 不兼容或改功能,次 向下兼容,修订号 bug),Packaging(文件类型 默认jar java,war web,pom 父工程)。
|-- pom.xml # Maven 项目管理文件
|-- src
|-- main # 项目主要代码
| |-- java # Java 源代码目录
| | `-- com/example/myapp # 开发者代码主目录
| | |-- controller # 存放 Controller 层代码的目录
| | |-- service # 存放 Service 层代码的目录
| | |-- dao # 存放 DAO 层代码的目录
| | `-- model # 存放数据模型的目录
| |-- resources # 资源目录,存放配置文件、静态资源等
| | |-- log4j.properties # 日志配置文件
| | |-- spring-mybatis.xml # Spring Mybatis 配置文件
| | `-- static # 存放静态资源的目录
| | |-- css # 存放 CSS 文件的目录
| | |-- js # 存放 JavaScript 文件的目录
| | `-- images # 存放图片资源的目录
| `-- webapp # 存放 WEB 相关配置和资源
| |-- WEB-INF # 存放 WEB 应用配置文件
| | |-- web.xml # Web 应用的部署描述文件
| | `-- classes # 存放编译后的 class 文件
| `-- index.html # Web 应用入口页面
`-- test # 项目测试代码
|-- java # 单元测试目录
`-- resources # 测试资源目录
1.2
<!--第三方依赖信息集合
dependencies
dependency
[gav]
-->
<!-- 声明一个变量,方便使用${jackson.version}
技术名+version
-->
<!-- 引入依赖作用域
默认compile main test 打包和运行
test junit@Test
runtime main,test不用 打包运行用 mysql
provided main,test用 打包运行不用 servlet HttpServlet
锦上添花
-->
maven-search
<!--gavp属性,不变-->
<!--构建过程-部署-修改-->
依赖传递 减少重复,自动管理,确保正确
依赖冲突 发生重复依赖终止依赖传递,避免重复依赖
依赖冲突解决原则:1、路径短 2、时间早 3、排除依赖<exclusions> 4、版本锁定 3、4常用
发生冲突,后续终止
错误:1、网络或服务器2、版本号,名字错误3、本地仓库缓存被污染或破坏(不访问镜像)删除lastUpdated文件
项目构建是指将源代码、依赖库和资源文件等转换成可执行或可部署的应用程序的过程,在这个过程中包括编译源代码、链接依赖库、打包和部署等多个步骤
工程本地部署:清理,编译,测试,报告,打包,部署
主动触发场景:1、重新编译2、打包3、部署本地或上传私服
进入pom.xml 所在路径:mvn clean(target) compile test site(展示,不常用) package(打包) install(本地jar) deploy(私服war)
构建命令周期(有序的构建命令容器):触发周期后的命令自动触发同一周期前的命令,简化触发构建命令过程
周期包含:清理:clean + 构建:compile,test.package,insttall/deploy + 报告:site
触发:周期->命令->插件
war<build><plugins><plugin>
1.3
继承
同一项目不同模块依赖版本冲突 思路1:父工程引入依赖(导致引入不需要的包) 思路2:父工程只做依赖版本声明<dependcyManagement>,子gav不写版本
子工程若注明版本号,仍以子为准。依赖管理简化。<parent><gav>
聚合
父类周期自动触发子类周期。统一管理,优化顺序。父中<moudles><moudle>管理子,可以只继承不聚合,一般同时存在。构建管理简化。