什么是maven
在之前是使用下载jar包的形式,不方便管理jar包,而且容易冲突,需要定义相同的东西。
引入maven不做重复的东西。
maven 读音 [ˈmeɪvn]
优势
- convention over configuration 约定优于配置
- 超级pom的path \lib\maven-model-builder-3.5.0.jar\org\apache\maven\model\ pom.xml 约定了项目pom的位置
- 使用简单
- 测试支持
- 构建简单
- CI
- 插件丰富
使用
配置
-
Windows path
-
Linux .bash_profile
-
MAVEN_OPTS 可以配置系统变量
maven在使用时会
-
先找~ /.m2/setting.ml
-
在找conf/setting.ml
-
配置setting.xml 常用的仓库
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>ui</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://uk.maven.org/maven2/</url>
</mirror>
<mirror>
<id>osc_thirdparty</id>
<mirrorOf>thirdparty</mirrorOf>
<url>http://maven.oschina.net/content/repositories/thirdparty/</url>
</mirror>
-
pom.xml配置
- groupId com.gupaoedu
- artfactId 功能命名
- version 版本号
- packaging 打包方式 默认是jar
- dependencyManagement
1.只能出现在父类pom
2.统一版本号
3.声明式 - Dependency
- Type 默认jar
- scope 意义:了解打包的过程,优化pom
- comoile 编译 默认会打到包里面 例如 spring-core
- test 测试 不会打到包里面
- provided 编译 不会打到包里面 例如servlet
- runtime 运行时有效 会到到包里 例如JDBC驱动实现
- system 本地一些jar包
- 传递依赖
| | compile | test | provided |runtime|
|:--:|:--:|:--:|:--:|:--:|
| compile | compile | - | - |runtime|
| test |test | - | - |test|
| provided |provided |- | - |provided|
|runtime |runtime | - | - |runtime|
- 依赖仲裁
- 最短路径原则
- 加载先后原则
- exclusions
- 排除包
-
生命周期 lifecycle/phase/goal
- A Build Lifecycle is Made Up of Phases
- 构建生命周期由阶段组成
- A Build Phase is Made Up of Plugin Goals
- 构建阶段由插件目标组成
网友评论