zoukankan      html  css  js  c++  java
  • 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目标能够完成该任务,因此,将它们绑定,就能实现项目编译的目的

  • 相关阅读:
    SQL*PLUS命令的使用大全
    Oracle总结
    SQL*PLUS命令的使用大全
    Java经典面试题
    学习Java的30个基本概念
    Java经典面试题
    学习Java的30个基本概念
    Oracle总结
    ORACLE大数据量下的分页解决方法
    XAMPP修改80和443端口及创建虚拟目录
  • 原文地址:https://www.cnblogs.com/kirohuji/p/6964562.html
Copyright © 2011-2022 走看看