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中插件任务配置这三类,具体不赘述。
maven的仓库、生命周期与插件相关推荐
- Maven - 6、生命周期和插件详解
1.用户属性Properties的使用 项目pom.xml中,有下面这样一段依赖: <dependencies><dependency><groupId>org.s ...
- Maven生命周期与插件
Maven简介 Maven是一个项目构建工具,也可以管理项目的依赖.maven将构建项目的过程分为了三个独立的生命周期,每个生命周期都有一系列的阶段,每个阶段都需要和maven的插件绑定才能执行.从这 ...
- Maven入门指南⑦:Maven的生命周期和插件
Maven入门指南⑦:Maven的生命周期和插件 一个完整的项目构建过程通常包括清理.编译.测试.打包.集成测试.验证.部署等步骤,Maven从中抽取了一套完善的.易扩展的生命周期.Maven的生命周 ...
- maven详解之生命周期与插件
Maven是一个优秀的项目管理工具,它能够帮你管理编译.报告.文档等. Maven的生命周期: maven的生命周期是抽象的,它本身并不做任何的工作.实际的工作都交由"插件"来完成 ...
- maven(7)生命周期和插件
[0]README 1)本文部分文字转自 "maven实战",旨在 review "maven(7)生命周期和插件" 的相关知识: 2)maven 另外两个核 ...
- Maven生命周期和插件的那些事(2021版)
前言:在日常开发中我们经常使用IDE提供的MAVEN功能,如下图所示,通过右键->run maven build的方式或者通过命令行运行maven命令的方式来对项目进行构建.在我们通过简单操作就 ...
- Maven读书笔记之七(生命周期和插件)
1. 生命周期What? Maven一般能自动化执行的生命周期有清理.编译.测试.打包,部署. 2. 生命周期详解 2.1 三套生命周期 2.1.1 clean生命周期 pre-clean:清理前的准 ...
- Maven的生命周期和插件
(尊重劳动成果,转载请注明出处:https://blog.csdn.net/qq_25827845/article/details/83795622冷血之心的博客) 关注微信公众号(文强的技术小屋), ...
- Maven之生命周期和插件
Maven之坐标和依赖_jerry_dyy的博客-CSDN博客 Maven之仓库_jerry_dyy的博客-CSDN博客 Maven之聚合与继承_jerry_dyy的博客-CSDN博客 Maven之生 ...
最新文章
- 转转服务器无响应,【转】服务器无响应(或者本地MySQL服务器的套接字没有正确配置)的问题...
- ios vue 添加本地音乐_Vue 项目一些常见问题的解决方案
- 面试题—Mysql篇
- 7个相同小球4个不同盒子_【计算启蒙】4个游戏陪娃玩懂“数拆分”,加减法都不用愁!...
- java 进制转换 十进制转二,八,十六进制
- HIVE攻略 JFK_Hive安装及使用攻略
- Windows误关闭资源管理器重启的办法
- opencv 扩大区域_python-----opencv图像边界扩充
- html垂直线6,HTML的垂直线
- 设备文件BSP及嵌入式驱动开发笔记
- mysql binlog ignore db_MySQL binlog_ignore_db 参数的具体使用
- OBS录制高清视频卡顿原因之一:OBS缓存数据写入磁盘不及时
- Google测试之道读后感
- leetcode-739.每日温度-单调栈
- 图形库LVGL v8.2版本移植
- STM32H7高性能MCU系列 STM32H7A3NGH6 32-bit RISC内核
- 计算机无法找到手机热点,苹果手机个人热点找不到如何解决
- appium-desktop Capability
- thinkpade575加固态_【评测】工作娱乐两相宜——ThinkPadE575!
- 雷达图的4种绘制方法
热门文章
- thinkphp手机版小说网站源码
- mysql 2008数据库配置文件_SQL Server 2008数据库的配置及连接
- 云服务器,Linux上安装xampp,搭建node服务,云服务器Firewalld、iptables,nginx反向代理
- 简洁UI好玩的文字转换emoji表情微信小程序支持句子词语转换_源码
- HTML二刺螈网址导航模板
- WordPress主题zibll子比主题+新增阿里云短信/腾讯云/短信宝/风吹雨短信接口
- DouPHP 1.5 Release
- 炫酷超漂亮辅助网站源码
- ASP.NET 4中的SEO改进
- Python实例讲解 -- 接收邮件 (亲测)