Maven简介
- 什么是Maven
- Maven是Apache下的项目管理工具,纯Java开发,可以更方便地管理和构建Java项目
- 为什么使用Maven
- jar包管理:依赖管理
- 跨平台:windows、linux、mac
- 清晰的项目结构:
src(main(java + resources) + test) + pom.xml
- 多工程项目:按模块进行拆分
- 一键构建项目
- 安装Maven
- https://maven.apache.org/
- Maven管理jar包的方式
- 从中央仓库获取标准规范的jar包,从而避免了下载从其他源下载到错误的jar包
- 本地仓库统一管理jar包,使jar包与项目分离,减小项目体积
- 通过坐标的方式从本地仓库获取jar包
- 坐标:公司/组织名(
groupId
)+项目/子项目名(artifactId
)+版本号(versionId
) - 本地仓库存放很多jar包供项目使用
- 建立本地仓库索引从而快速找到符合要求的jar包
- 多个Maven项目都可以从本地仓库获取jar包
- 设置本地仓库:
Maven根目录->conf->setting.xml
,修改localRepository
标签
- Maven三种仓库
- 本地仓库
- 远程仓库(私服):公司维护
- 中央仓库:第三方团队维护
- Maven官方维护:https://mvnrepository.com/
- 阿里云维护的镜像(国内速度快):https://maven.aliyun.com/nexus/content/groups/public/
- 项目搜索优先级:本地仓库 -> 远程仓库 -> 中央仓库
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
$ mvn clean
$ mvn compile
$ mvn test-compile
$ mvn test
$ mvn package
$ mvn install
$ mvn tomcat:run
- Maven命令的生成周期与执行顺序
- clean生命周期:
clean
- default生命周期:
compile、test-compile、test、package、install
- site生命周期:
site
命令生成项目文档静态页 - 不同生命周期可以一起执行,如先clean再compile
- 命令的执行顺序
- 相同生命周期才会受执行顺序影响
- default生命周期的执行顺序:
compile <- test-compile <- test <- package <- install
- Scope标签:依赖作用域
compile
(默认值):在编译、测试、运行、打包时都有效provided
:在编译、测试时有效,运行、打包无效test
:仅在测试时有效runtime
:在测试、运行、打包时有效,编译时无效system
:不推荐使用,不会去本地仓库寻找依赖,需指定本地路径
- Maven和Tomcat热部署
- Maven整合SSM框架
- Maven创建父子项目
- Maven的依赖传递和依赖冲突
- Maven的依赖管理 (版本锁定)
<dependencyManagemant>
是依赖管理,该标签下添加的<dependencies>
可以声明依赖,但不会引入jar包- 只有声明在
<project>
标签下<dependencies>
中的依赖才会被引用到项目中 - 在
<dependencyManagemant>
添加jar包标签后,<project>
下的<dependencies>
版本号可以省略不写 <properties>
标签可以自定义版本号<xxx.version>1.0.0</xxx.version>
,用el表达式${xxx.version}
赋值给<version>
标签- 统一管理标签,修改方便