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

  • 相关阅读:
    怎么查看京东店铺的品牌ID
    PPT编辑的时候很卡,放映的时候不卡,咋回事?
    codevs 1702素数判定2
    codevs 2530大质数
    codevs 1488GangGang的烦恼
    codevs 2851 菜菜买气球
    hdu 5653 Bomber Man wants to bomb an Array
    poj 3661 Running
    poj 1651 Multiplication Puzzle
    hdu 2476 String Painter
  • 原文地址:https://www.cnblogs.com/kirohuji/p/6964562.html
Copyright © 2011-2022 走看看