小白学Maven笔记 2——基础概念
2017-04-22 本文已影响0人
莫珂
构建生命周期(Build Lifecycle)
生命周期分为:
- default (处理项目部署)
- clean(处理项目清理)
- site (处理生成项目站点文档)
阶段(Phase)
每一个生命周期是由不同的构建阶段(build phase)构成的
- validate 验证项目是否正确并且所有的信息是有效的
- compile 编译项目的源码
- test 使用合适的单元测试框架来测试已经被编译的源码
- package 将源码打包成指定的格式,如JAR
- verify 对集成测试结果进行检查,以确保满足质量标准(这个没用过不太了解)
- install 将生成的package安装到本地仓库,用于本地作为其他工程依赖来使用
- deploy 发布package到远程仓库让别人使用(自己还没有到达这个地步,还无缘使用LOL)
其他更多阶段请看Lifecycle Reference
以上所有的阶段(加上Lifecycle Reference中其他的)构成了 default生命周期。
坐标:
还记得上一篇我们创建工程的时候填写的信息吗?
屏幕快照 2017-04-21 23.08.25.png
在Maven中groupId+artifactId+version唯一标示了一个资源,我们可以理解为坐标。Maven中有本地仓库和 远程仓库,使用坐标搜索的时候回优先使用本地仓库,没有去远程仓库找,然后下载到本地,这也是上一篇我们打开auto import的原因,自动帮我们下载
屏幕快照 2017-04-21 23.08.52.png
插件
Maven核心是一个插件执行框架,官网插件详细介绍
- 构建插件(build plugins)定义在<build>标签中,类似下面
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
2.报告插件(reporting plugins)定义在<reporting>标签中
常用标签:
<packaging>指定打包信息,默认是jar
<name>项目描述名
<url>项目地址
<description>项目描述
<developers>开发者信息
<licenses>许可证信息
<organization>组织信息
<dependencies>依赖信息
<dependency>
….
<scope></scope>依赖范围,若为test尽在test代码中能引用
<optional></optional>是否可选
<exclusions>排除依赖传递列表
<exclusion>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<dependencyManagement>依赖管理(父模块中定义,子模块继承)
</dependencyManagement>
<build>构建行为
<plugins>插件列表
<parent>子模块总对于父模块的继承
<modules>聚合多个子模块
<properties>自己定义标签,使用${标签名}来使用
依赖冲突:
1.短路,优先依赖层级最少的
2.层级相同先声明则优先