一、仓库

统一存储所有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中插件任务配置这三类,具体不赘述。

maven的仓库、生命周期与插件相关推荐

  1. Maven - 6、生命周期和插件详解

    1.用户属性Properties的使用 项目pom.xml中,有下面这样一段依赖: <dependencies><dependency><groupId>org.s ...

  2. Maven生命周期与插件

    Maven简介 Maven是一个项目构建工具,也可以管理项目的依赖.maven将构建项目的过程分为了三个独立的生命周期,每个生命周期都有一系列的阶段,每个阶段都需要和maven的插件绑定才能执行.从这 ...

  3. Maven入门指南⑦:Maven的生命周期和插件

    Maven入门指南⑦:Maven的生命周期和插件 一个完整的项目构建过程通常包括清理.编译.测试.打包.集成测试.验证.部署等步骤,Maven从中抽取了一套完善的.易扩展的生命周期.Maven的生命周 ...

  4. maven详解之生命周期与插件

    Maven是一个优秀的项目管理工具,它能够帮你管理编译.报告.文档等. Maven的生命周期: maven的生命周期是抽象的,它本身并不做任何的工作.实际的工作都交由"插件"来完成 ...

  5. maven(7)生命周期和插件

    [0]README 1)本文部分文字转自 "maven实战",旨在 review  "maven(7)生命周期和插件" 的相关知识: 2)maven 另外两个核 ...

  6. Maven生命周期和插件的那些事(2021版)

    前言:在日常开发中我们经常使用IDE提供的MAVEN功能,如下图所示,通过右键->run maven build的方式或者通过命令行运行maven命令的方式来对项目进行构建.在我们通过简单操作就 ...

  7. Maven读书笔记之七(生命周期和插件)

    1. 生命周期What? Maven一般能自动化执行的生命周期有清理.编译.测试.打包,部署. 2. 生命周期详解 2.1 三套生命周期 2.1.1 clean生命周期 pre-clean:清理前的准 ...

  8. Maven的生命周期和插件

    (尊重劳动成果,转载请注明出处:https://blog.csdn.net/qq_25827845/article/details/83795622冷血之心的博客) 关注微信公众号(文强的技术小屋), ...

  9. Maven之生命周期和插件

    Maven之坐标和依赖_jerry_dyy的博客-CSDN博客 Maven之仓库_jerry_dyy的博客-CSDN博客 Maven之聚合与继承_jerry_dyy的博客-CSDN博客 Maven之生 ...

最新文章

  1. 转转服务器无响应,【转】服务器无响应(或者本地MySQL服务器的套接字没有正确配置)的问题...
  2. ios vue 添加本地音乐_Vue 项目一些常见问题的解决方案
  3. 面试题—Mysql篇
  4. 7个相同小球4个不同盒子_【计算启蒙】4个游戏陪娃玩懂“数拆分”,加减法都不用愁!...
  5. java 进制转换 十进制转二,八,十六进制
  6. HIVE攻略 JFK_Hive安装及使用攻略
  7. Windows误关闭资源管理器重启的办法
  8. opencv 扩大区域_python-----opencv图像边界扩充
  9. html垂直线6,HTML的垂直线
  10. 设备文件BSP及嵌入式驱动开发笔记
  11. mysql binlog ignore db_MySQL binlog_ignore_db 参数的具体使用
  12. OBS录制高清视频卡顿原因之一:OBS缓存数据写入磁盘不及时
  13. Google测试之道读后感
  14. leetcode-739.每日温度-单调栈
  15. 图形库LVGL v8.2版本移植
  16. STM32H7高性能MCU系列 STM32H7A3NGH6 32-bit RISC内核
  17. 计算机无法找到手机热点,苹果手机个人热点找不到如何解决
  18. appium-desktop Capability
  19. thinkpade575加固态_【评测】工作娱乐两相宜——ThinkPadE575!
  20. 雷达图的4种绘制方法

热门文章

  1. thinkphp手机版小说网站源码
  2. mysql 2008数据库配置文件_SQL Server 2008数据库的配置及连接
  3. 云服务器,Linux上安装xampp,搭建node服务,云服务器Firewalld、iptables,nginx反向代理
  4. 简洁UI好玩的文字转换emoji表情微信小程序支持句子词语转换_源码
  5. HTML二刺螈网址导航模板
  6. WordPress主题zibll子比主题+新增阿里云短信/腾讯云/短信宝/风吹雨短信接口
  7. DouPHP 1.5 Release
  8. 炫酷超漂亮辅助网站源码
  9. ASP.NET 4中的SEO改进
  10. Python实例讲解 -- 接收邮件 (亲测)