目录
Maven 3.6.3 的下载、安装、配置、检测(详细讲解)_【官方推荐】、唐城的博客-CSDN博客_maven3.6.3安装
1.1 maven概念
1.2 maven作用
1.3 maven仓库
1.4 maven创建maven项目
1.5 idea创建web项目
1.6 依赖配置
1.7 依赖管理
1.7.1 依赖传递
1.7.2 依赖传递冲突问题
1.7.3 可选依赖
1.7.4 排除依赖
1.7.5 依赖范围
1.8 生命周期与插件
Maven 3.6.3 的下载、安装、配置、检测(详细讲解)_【官方推荐】、唐城的博客-CSDN博客_maven3.6.3安装
1.1 maven概念
传统构建项目遇到的问题:
- jar包不统一,jar包不兼容使用maven工程升级维护过程操作繁琐
Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
POM:项目对象模型
1.2 maven作用
项目构建:提供标准的,跨平台的自动化项目构建方式
依赖管理:方便快捷的管理项目以来的资源(jar包),避免资源间的版本冲突问题
统一开发结构:提供标准的,统一的项目结构
1.3 maven仓库
仓库:用于存储资源,包含各种jar包
本地仓库
远程仓库:
私服仓库:部门/公司范围内存储资源的仓库,从中央仓库获取资源,可放一些具有版权的仓库
中央仓库:MAVEN团队维护,存储所有资源的仓库,开源jar包
Maven仓库中用于描述仓库中资源位置
https://repo1.maven.org/maven2/junit/junit/4.13.2/
Maven坐标主要组成
grouId:定义当前Maven项目隶属组织名称
artifactID:定义当前Maven项目名称
version:定义当前项目版本号
mvnrepository.com 网站可以直接复制相关坐标代码
1.4 maven创建maven项目
点击右上角的Project Structure->Modules
改变文件属性右键文件Mark Directory as --
src中 java:Sources resources:Resources
test中java:Test resources:Test:Resources
1.5 idea创建web项目
Project->maven->选择SDK和Create from archetype
输入webapp->OK
idea2019.3 无法使用3.8.5 现配置3.6.3
引入spring-context 依赖才有spring config选项
org.springframework spring-context5.0.2.RELEASE
构建tomcat,可以通过依赖的方式构建
org.apache.tomcat.maven tomcat7-maven-plugin2.1 80 /
点击edit configarations,选择maven,点击添加,
name:启动服务器 command line: tomcat:run OK
1.6 依赖配置
依赖指当前项目所需的jar,一个项目可以设置多个依赖
log4j log4j1.2.12
1.7 依赖管理
1.7.1 依赖传递
依赖具有传递性:
直接依赖:在当前项目中通过依赖配置建立的依赖关系
间接依赖:被资源的资源如果依赖其他资源,当前项目依赖其他资源
项目3的坐标
com.it3 web011.0-SNAPSHOT
在项目2中把项目3的坐标用依赖方式写入就可以了
com.it3 web011.0-SNAPSHOT
1.7.2 依赖传递冲突问题
路径优先:当依赖中出现相同的资源是,层级越深,优先级越低,层级越浅,优先级越高
声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的
1.7.3 可选依赖
可选依赖指对外隐藏当前所选依赖的资源---不透明
项目3log4j log4j1.2.12 false
1.7.4 排除依赖
排除依赖指主动断开以来的资源,被排除的资源无需指定版本---不需要
项目2
com.it web021.0-SNAPSHOT log4j log4j
1.7.5 依赖范围
依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其作用范围
- 主程序范围有效(main文件夹范围内)测试程序范围有效(test文件夹范围内)是否参与打包(package指令范围内)
log4j log4j1.2.12 runtime
1.8 生命周期与插件
Maven对生命周期划分为3套
clean:清除工作
pre-clean 执行一些需要在clean之前完成的工作clean 移除所有上一次构建生成的文件post-clean 执行一些需要在clean之后立刻完成的工作default:核心工作,例如编译,测试,打包,部署site产生报告,发布站点
插件
org.apache.maven.plugins maven-source-plugin2.2.1 jar test-jar generate-test-resources



