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


    一、仓库

             统一存储所有Maven项目共享的构建的位置就是仓库。

            仓库分为本地仓库和远程仓库。远程仓库又分为中央仓库(中央仓库是Maven核心自带的远程仓库),伺服(另一种特殊的远程仓库,为节省宽带和时间,在局域网内架设的一个私有的仓库服务器,用其代理所有的外部的远程仓库,内部项目也能部署到伺服上),其他公开的远程仓库(常见的由Java.NET Maven库,Jboss Maven库)。

             Maven根据坐标寻找构件的时候,它首先会查看本地仓库,如果本地仓库存在此构件,则直接使用;如果本地仓库不存在此构件,maven就会去远程仓库查找,发现需要的构件后,下载到本地仓库再使用。

    如图:

    Maven仓库的分类

                                   

    三种仓库的布局:

                               

    二、插件与生命周期

            Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,仅仅定义了抽象的生命周期,所有这些任务都交给插件来完成的。

    将生命周期的阶段与插件目标互相绑定,就可以在特定的阶段完成具体的构建任务。

    1.生命周期

            Maven的生命周期是抽象的,这意味着生命周期本身不做任何实际的工作,在Maven的设计中,实际的任务都交由插件来完成。生命周期抽象了构建的各个步骤,定义了它们的次序,利用插件机制具体实现。每个构建步骤都可以绑定一个或多个插件行为。

                          

    Maven拥有三套相互独立的生命周期分别为clean,default,site。

    具体详情可见:

                                 

               

               

                       

               

    2.插件

             Maven的核心仅仅定义了抽象的生命周期,具体的任务是交由插件完成的,插件以独立的构建形式存在。

             每个插件都能至少完成一个任务,一个任务即一个功能,将这些功能应用在构建过程的不同生命周期中,这样既能保证拿来即用,又能保证maven本身的繁杂和冗余。

    2.1插件目标

            每一个功能就是一个插件目标,一个插件里可以有很多功能。

    2.2插件绑定

            Maven的生命周期与插件互相绑定,用以完成实际的构建任务。具体而言,是生命周期的阶段与插件的目标相互绑定。

                                 

    插件绑定分为两类:

    内置绑定:为了能让用户几乎不用任何配置就能构建Maven项目,Maven在核心为一些主要的生命周期阶段绑定了很多插件目标。用户通过命令行调用生命周期阶段的时候,对应的插件目标就会执行相应的任务。直接可以理解为默认绑定了一部分生命周期和插件,可以直接用,无需配置;

    自定义绑定:用户根据自己的选择将某个插件目标绑定到生命周期的某个阶段,这种绑定方式能够在项目构建过程中执行更多更富特色的任务。

    2.3插件配置

             完成插件和生命周期的绑定后,用户还可以配置插件目标的参数,进一步调整插件目标所执行的任务,以满足项目需求 。大致分为命令行插件配置、POM中插件全局配置、POM中插件任务配置这三类,具体不赘述。

  • 相关阅读:
    ASP.NET中JSON的序列化和反序列化
    Git 本地项目上传至托管平台(OsChina/GitHub)
    Android Gradle 完整指南(转)
    开发错误记录13:java.lang.UnsatisfiedLinkError: Couldn't load xxx.so: findLibrary returned null
    Android其它新控件 (转)
    一个Activity掌握Design新控件 (转)
    一个Activity掌握Android5.0新控件 (转)
    一个Activity掌握Android4.0新控件 (转)
    开发错误日记 12: Unsupported major.minor version 52.0
    Linux 下各个目录的作用及内容
  • 原文地址:https://www.cnblogs.com/hoobey/p/6080577.html
Copyright © 2020-2023  润新知