# learning-mybatis
**Repository Path**: daniel8888/learning-mybatis
## Basic Information
- **Project Name**: learning-mybatis
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2018-11-19
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
查缺补漏:
如果A依赖B ,B依赖C ,那么A到B B到C是直接依赖 A和C是间接依赖
目录结构:
HelloFriend
src
——main
————java
————resources
——test
————java
————resources
pom.xml
maven坐标:
groupId:公司或组织的域名倒序+当前项目名称
artifactId:当前项目模块的名称
version:当前模块的版本
如果通过坐标查找到jar包
gav三个变量连接起来
com.atguigu.maven+Hello+0.0.1-SNAPSHOT
连接起来的字符串作为目录结构在仓库中查找
com/atguigu/maven/Hello/0.0.1-SNAPSHOT/Hello-0.0.1-SNAPSHOT.jar
依赖的范围:scope
compile:main目录下的可以访问
test目录下的java代码可以访问这个范围的依赖
部署到tomcat服务器上运行时要放到WEB-INF的lib目录下
test:
main目录下的java代码不能访问这个范围的依赖
test目录下的java代码可以访问这个范围的依赖
部署到tomcat服务器上运行的不会访问WEB-INF的lib目录下
对junit的依赖 仅仅是测试部分需要
provided:
main目录下的java代码可以访问这个范围的依赖
test目录下的代码可以访问这个范围的代码
部署到tomcat服务器的运行时,不会放在WEB-INF的lib目录下
比如servlet-api
依赖的传递性:
主工程对间接依赖的jar包引入的依赖范围 只有依赖范围为compile时才可以访问
依赖原则:
路径最短者优先
路径相同时,先声明者优先
依赖排除 :
exclusion:配置在dependency节点下面
比如当前环境对commons-logging属于是间接依赖到1.1.1 版本 但是我像用1.1.2 这个时候需要去排除依赖
com.atguigu.maven
Environment
0.0.1-SNAPSHOT
commons-logging
commons-logging
commons-logging
commons-logging
1.1.2
maven仓库类型:
本地仓库 远程仓库:私 服 中央仓库 中央仓库镜像
site
maven的生命周期:
clean lifecycle:在真正的构建之前进行一些清理工作
Default lifecycle :构建的核心部分,编译,测试 打包 安装 部署
site Lifecycle :生成项目报告 站点发布站点
相互独立的,你仅仅可以调用clean 来清理目录
仅仅调用site来生成站点
clean 生命周期:
pre-clean 需要执行一些在clean之前完成的工作
clean:移除所有上一次构建生成的文件
post-clean :执行一些需要clean之后立即完成的工作
site生命周期:
pre-site :执行一些需要在执行站点之前完成的工作
site:生成项目的站点文档
post-site:执行一些需要在生成站点之后完成的工作 并且为部署做准备
site-deploy :将生成的站点文档都部署到特定的服务器
经常用到site 和site-deploy :可以生成和发布maven站点 ,这是maven强大的功能 ,manager比较喜欢
default生命周期:
是maven生命周期最重要的一个阶段
compile:编译项目的源代码
test-compile:编译测试源代码
test:使用合适的单元测试框架进行测试
package:接受编译好的代码,打包成可发布的格式 如jar
install:将包安装至本地仓库 让其他进行依赖
mvn install:编译测试打包
插件和目标:
maven的核心仅仅定义了抽象的生命周期 具体的任务是交给插件完成的
每个插件都能实现多个功能 每个功能就是一个插件目标
maven的生命周期与插件目标相互绑定 ,以完成某个具体的构建任务
compile是插件 maven-compile-plugin的一个功能
pre-clean 是maven-clean-plugin的一个目标
为什么要使用继承机制:非compile的依赖信息不能在依赖链中传递 所以有需要的工程需要单独配置 比如junit
如果项目需要junit版本统一 那么需要将依赖信息统一到父工程模块进行统一管理
...
...
...
从当前目录到父项目的pom.xml文件的相对路径
在父工程中管理依赖 :
将parent工程中的dependencies标签 用dependencymanagement标签括起来
junit
junit
4.9
test
在子项目中重新指定需要的依赖,删除范围和版本号
junit
junit
聚合:
作用:
将多个工程拆分为模块后,需要手动逐个安装到仓库后才能生效 ;
修改源码后也需要逐个进行手动clean ,使用聚合可以批量对maven 工程的安装清理工作
在总的聚合工程中使用modules/module标签组合,指定模块工程的相对路径即可
../Hello
../HelloFriend
../MakeFriends