Maven系列三@三生命周期和Maven聚合

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/poem_2010/article/details/76945382

今晚的九寨沟地震,还是继续更新自己的博客,在成都这个地方,是不会发生地震的,可是还是希望那边的所有人都安全,平安,祈祷。一边写,一边听着新闻的报道。

安排如下,第一,讲解Maven的三个生命周期,第二,讲解Maven的聚合。

一、Maven三个生命周期

为啥会有这个三个生命周期,其实,就是对项目整个的开发过程中的各个环节和过程的一种抽象和统一,项目开发整个过程包括项目清理、初始化,编译,测试,打败,集成测试,部署和站点的生成。Maven的三套生命周期是相互独立的,分别是clean,default,site

1)、clean 生命周期  --- mvn clean 

clear生命周期的目的就是为了清除项目。clear 清理上一个构建生成的文件。

pre-clean , ②clean , ③post-clean  ,三个阶段,第一个,清理之前的时期,第二个是清理上一次构建的文件,第三个执行清理后需要完成的工作。

2)、default生命周期 mvn install / complie / test /

这个生命周期定义了真正构建时所需要的所有的步骤,是Maven三个生命周期中最重要的一个部分,捡重点的阶段:

①、process-sources  处理项目主要的资源文件,对src/main/resources

②、complie 编译项目的主源码,一般来说是scr/main/java

③、process-test-source.处理项目测试资源文件,一般是src/test/resources

④、test-compile编译项目的测试代码,一般是src/test/java目录下的文件输出到测试的classpath目录中

⑤、test 使用单元测试框架运行测试,测试代码不会打包部署

⑥、package 接受编译好的代码,打包成可分布的格式,如jar,或者是war

⑦、install 将包安装到Maven本地仓库,工本地其他Maven项目使用

⑧、deploy  将最终的包复制到远程的仓库,供其他开发人员和Maven项目使用。

3)、site 生命周期 mvn clean deploy site-deploy

这个周期的目的是建立和发布项目站点,Maven能够基于POM所包含的信息,建立一个友好的站点。

①、pre-site 执行一些在生成站点之前需要的工作

②、site生成项目站点文档

③、post-site 执行一些在生成项目站点之前需要完成的工作

④、site-deploy 将生成的项目站点发布到服务器


二、Maven的聚合

1)、为什么要是用聚合?

我们在开发过程中,创建了2个以上的模块,每个模块都是一个独立的maven project,在开始的时候我们可以独立的编译和测试运行每个模块,但是随着项目的不断变大和复杂化,我们期望能够使用简单的操作来完成编译等工作,这时Maven给出了聚合的配置方式。

所谓聚合,顾名思义,就是把多个模块或项目聚合到一起,我们可以建立一个专门负责聚合工作的Maven project。

2)继承

Maven项目每次都需要重复配置依赖,然后各种的配置,就很蛋疼,使用聚合后,就可以避免重复限制。来看看可以继承的元素有哪些?

groupId:项目组ID,项目坐标的核心元素

version: 项目版本, 项目坐标的核心元素

description: 项目的描述信息

organization: 项目的组织信息

inceptionYear: 项目的创始年份

url: 项目的URL地址

developers: 项目开发者信息

contributors: 项目的贡献者信息

distributionManagement: 项目的部署配置

issueManagement: 项目的缺陷跟踪系统信息

ciManagement: 项目的持续集成系统信息

scm: 项目的版本控制系统信息

mailingLists: 项目的邮件列表信息

properties: 自定义的maven属性

dependencies: 项目的依赖配置

dependencyManagement: 项目的依赖管理配置

repositories: 项目的仓库配置

build: 包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置等

reporting: 包括项目的报告输出目录配置、报告插件配置等

3)、反應堆

反应堆就是聚合的的我们的所有的项目,对于单个项目,反应堆就是该模块本省,对于多模块项目来说,反应堆包括了所有的模块之间的继承和依赖的关系,从而可以自动计算出合理

的模块加载顺序。

猜你喜欢

转载自blog.csdn.net/poem_2010/article/details/76945382