为什么使用Maven?
总结:Maven是自动化构建工具,在Idea中使用Maven是为了更好的管理依赖、构建项目、管理项目信息。Maven是搭建SSM框架的辅助,使SSM框架的搭建更容易、使整个开发过程更高效、快捷。
项目管理工具
,将项目开发
和管理过程
抽象成一个目对象模型〈(POM)项目构建
:提供标准的、跨平台的自动化项目构建方式依赖管理
:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题统一开发结构
:提供标准的、统一的项目结构1.3.1 仓库分类
本地仓库
:自己电脑上存储资源的仓库,连接远程仓库获取资源远程仓库
:非本机电脑上的仓库,为本地仓库提供资源
中央仓库
:Maven团队维护,存储所有资源的仓库(不能存有版权的资源)
私服
:部门/公司范围内存储资源的仓库,从中央仓库获取资源1.3.2 私服的作用
不对外共享
什么是坐标?
Maven坐标主要组成
组号(groupld)
:定义当前Maven项目隶属组织名称(通常是域名反写,例如: org.mybatis)项目号(artifactld)
:定义当前Maven项目名称(通常是模块名称,例如CRM、SMS)版本号(version)
:定义当前项目版本号packaging
:定义该项目的打包方式Maven坐标的作用
1.5.1 本地仓库配置
1.5.2 远程仓库配置
1.5.3 镜像仓库配置
1. Maven工程目录结构
2. 在src同层目录下创建pom.xml
2.2 插件创建Maven
创建工程(在win10创建工程的模板,使用记得加双引)
mvn archetype:generate
-DgroupId={ project-packaging}-DartifactId={ project-name }
-DarchetypeArtifactId=maven-archetype-quickstart
-DinteractiveMode=false
mvn archetype:generate
“-DgroupId=com.ithema”
“-DartifactId=java-project”
“-DarchetypeArtifactId=maven-archetype-quickstart”
“-DarchetypeVersion=1.4”
“-DinteractiveMode=false”
mvn archetype:generate
“-DgroupId=com.ithema”
“-DartifactId=web-project”
“-DarchetypeArtifactId=maven-archetype-webapp”
“-Dversion=0.0.1-snapshot”
“-DinteractiveMode=false”
2.3 java工程和web工程的区别
依赖传递冲突问题
路径优先
:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高声明优先
:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的,特殊优先
:当同级配置了相同资源的不同版本,后配置的覆盖先配置的依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其作用范围
作用范围
(main文件夹范围内)
(test文件夹范围内)
(package指令范围内)
依赖范围的资源
在进行传递时,作用范围将受到影响
例子
Maven对项目构建的生命周期划分为3套
编译
,测试
,打包
,部署
等对应生命周期时执行对应的插件功能
一定要使用Maven么?