Maven系列学习(三)Maven生命周期和插件

Maven生命周期和插件

Maven另外的两个核心概念就是生命周期和插件,Maven的生命周期都是抽象的,其实实际行为都是由插件来完成的,生命周期和插件两者协同工作

1.生命周期

Maven的生命周期就是为了对所有的构建过程进行抽象和统一,这个生命周期包含了项目的清理,初始化,编译,测试,打包,集成测试,验证,部署和站点生成等几乎所有构建步骤,Maven的生命周期是抽象的,这意味着生命周期本身不做任何实际的工作,在Maven的设计中,实际的任务都是交给插件来完成的

一次构建(build):initialize--compile--test--package--integrationTest--deploy;

2.三套生命周期

Maven拥有三套互相独立的生命周期,分别是clean,default和site.clean生命周期的目的是清理项目,default生命周期的目的是构建项目,而site生命周期的目的是建立项目站点,每个生命周期包含一些阶段(phase),而且是有顺序的,并且后面的阶段依赖前面的阶段,而生命周期本身是独立的

clean的生命周期的目的是清理项目,包含三个阶段:pre-clean(清理前需要完成的工作),clean(清理上次构建的文件),post-clean(清理后需要完成的工作)

default的生命周期定义真正构建时需要执行的所有步骤,它是所有生命周期中最核心的部分,其包含的阶段如下:

validate--initialize--generate-source--process-source--generate-resources--process-resource--compile--process-classes--generate-test-sources--generate-test-resources--process-test-resource--test-compile--process-test-classes--test--prepare-package--package--pre-integraion-test-integration-test--post-integration-test--verify--install--deploy

site生命周期的目的是建立和发布项目站点,Maven能给予POM所包含的信息,自动生成一个友好的站点,该生命周期包含以下阶段:

pre-site--site--post-site--site-deploy

3.命令行与生命周期

从命令行执行Maven任务的最主要方式就是调用Maven的生命周期阶段:

(1). mvn clean:调用clean的生命周期

(2). mvn test:调用default生命阶段的test阶段,实际执行的阶段为default生命周期的从validate---到test的所有阶段

(3). mvn clean install:该命令是调用clean生命周期和defualt生命周期的install阶段,实际是pre-clean,clean,post-clean,和default生命周期的从validate到install的所有阶段

(4). mvn clean deploy site-deploy:该命令我就不做过多解释了

4.POM中插件全局配置

并不是所有的插件参数都合适从命令行配置,有些参数的值从项目创建到项目发布都不会改变,或者说很少改变,对于这种情况,在POM文件中一次性配置就显然比重复在命令行输入要方便

用户可以在声明插件的时候,对此插件进行一个全局的配置,也就是说所有说,所有该基于该插件目标的任务,都会使用这些配置

<build>
    <plugins>
         <!-- 插件定义 -->
        <plugin>
            <groupId>org.apache.maven.plugins<groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.1</version>
                <configuration>
                      <!-- 编译1.8版本的源文件 -->
                    <source></source>
                          <!-- 生成与JVM 1.8 兼容的字节码文件 -->
                    <target></target>
                </configuration>
        </plugin>
    </plugins>
</build>
        

5.插件绑定

Maven的生命周期与插件互相绑定,用以完成实际的构建任务,具体而言,是生命周期阶段与插件的目标互相绑定,以完成某个具体的构建任务,比如项目编译这一任务,它对应了default生命周期的compile这一阶段,而maven-compile-plugin这一插件的compile目标能够完成该任务,因此,将它们绑定,就能实现项目编译的目的

时间: 2024-08-06 03:42:31

Maven系列学习(三)Maven生命周期和插件的相关文章

maven详解之生命周期与插件(一)

Maven是一个优秀的项目管理工具,它能够帮你管理编译.报告.文档等. Maven的生命周期: maven的生命周期是抽象的,它本身并不做任何的工作.实际的工作都交由"插件"来完成. maven的每个构建步骤都可以绑定一个或多个插件行为,而且maven为大多数的构建步骤编写并绑定了默认插件. 三套生命周期: clean.default.site clean: 主要目的是清理项目 pre-clean: 执行一些清理前需要完成的工作 clean: 清理上一次构建生成的文件 post-cle

maven详解之生命周期与插件(二)

插件配置 定义解释:插件目标 当我们了解了maven插件之后,我们发现如果为每一个功能编写一个独立的插件显然是不可取的,因为这些任务背后有很多可以复用的代码,因此,把这些功能聚集在一个插件里,每一个功能我们就称之为一个插件目标. 举个例子: maven-dependency-plugin有十多个目标,每个目标对应了一个功能 分析项目依赖:dependency:analyze 列出项目依赖树:dependency: tree 列出项目所有已解析的依赖:dependency:list POM中插件全

maven的仓库、生命周期与插件

一.仓库 统一存储所有Maven项目共享的构建的位置就是仓库. 仓库分为本地仓库和远程仓库.远程仓库又分为中央仓库(中央仓库是Maven核心自带的远程仓库),伺服(另一种特殊的远程仓库,为节省宽带和时间,在局域网内架设的一个私有的仓库服务器,用其代理所有的外部的远程仓库,内部项目也能部署到伺服上),其他公开的远程仓库(常见的由Java.NET Maven库,Jboss Maven库). Maven根据坐标寻找构件的时候,它首先会查看本地仓库,如果本地仓库存在此构件,则直接使用:如果本地仓库不存在

maven详解之生命周期与插件

Maven是一个优秀的项目管理工具,它能够帮你管理编译.报告.文档等. Maven的生命周期: maven的生命周期是抽象的,它本身并不做任何的工作.实际的工作都交由"插件"来完成. maven的每个构建步骤都可以绑定一个或多个插件行为,而且maven为大多数的构建步骤编写并绑定了默认插件. 三套生命周期: clean.default.site clean: 主要目的是清理项目 pre-clean: 执行一些清理前需要完成的工作 clean: 清理上一次构建生成的文件 post-cle

Maven学习笔记(六):生命周期与插件

何为生命周期: Maven的生命周期就是为了对所有的构建过程进行抽象和统一.Maven从大量项目和构建工具中学习和反思,然后总结了一套高度完善的.易扩展的生命周期.这个生命周期包含了项目的清理.初始化.编译.测试.打包.集成测试.验证.部署和站点生成等几乎所有构建步骤.也就是说,几乎所有项目的构建,都能映射到这样一个生命周期上. Maven的生命周期是抽象的,这意味着生命周期本身不做任何实际的工作,在Maven的设计中,实际的任务(如编译源代码)都交由插件来完成.这种思想与设计模式中的模板方法(

Maven生命周期和插件

生命周期:构建过程的一系列阶段 Maven有三套生命周期: 1.clean.clean生命周期包括例如以下阶段 1.1.pre-clean 1.2.clean 1.3.post-clean 2.default,default生命周期包括例如以下阶段 2.1.validate 2.2.intialize 2.3.generate-sources 2.4.process-sources 2.5.generate-resources 2.6.process-resources 2.7.complie

(十二)Maven生命周期和插件

除了坐标.依赖以及仓库之外,Maven的另外两个核心概念是生命周期和插件.在有关Maven的日常使用中,命令行的输入往往就对应了生命周期,如mvn package就表示执行默认生命周期阶段package.Maven的生命周期是抽象的,其实际行为都由插件来完成,如package阶段的任务可能就会由maven-jar-plugin完成.生命周期和插件两者协同工作,密不可分. 1.Maven生命周期 我们在开发项目的时候,我们不断地在经历编译.测试.打包.部署等过程,maven的生命周期就是对所有这些

Maven3生命周期和插件

生命周期 Maven的生命周期是通过大量的项目和工具的学习和反思,然后总结出来的一套完善和易扩展的流程,包含了项目的清理.初始化.编译.测试.打包.集成测试.验证.部署和发布站点等几乎所有的构建步骤:同时,Maven的生命周期是抽象的,它只是定义了一系列的生命周期以及生命周期的执行顺序,而具体每个生命周期的处理逻辑由Maven插件提供. Maven共有三套生命周期: clean周期:主要是用来清理项目 default周期:主要是用来构建项目 site周期:主要是用来发布项目站点 每个周期中都包含

Maven入门教程三----生命周期和插件

生命周期和插件   Maven定义了三套生命周期:clean.default.site,每个生命周期都包含了一些阶段(phase). 三套生命周期相互独立,但各个生命周期中的phase却是有顺序的,且后面的phase依赖于前面的phase. 执行某个phase时,其前面的phase会依顺序执行,但不会触发另外两套生命周期中的任何phase. 如下图: -------------------------------------------------------------------------