# 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