maven版本_Maven – 工作原理
Maven以POM文件(项目对象模型)为中心,POM文件是xml格式,是自动构建的配置文件,位于项目的根目录下。
如果熟悉make 与 Makefile,可以看出,maven相当于make,pom.xml相当于makefile
下面是Maven读取POM文件执行构建过程的示意图
下面简单说明一下上图中的一些概念,后续会有更详细的的介绍。
POM文件
执行Maven命令时,Maven根据POM文件中的配置来执行命令。
依赖项和存储库
pom文件包含了依赖项的配置,依赖项是项目使用的外部JAR文件(Java库)。如果本地库中没有找到依赖项,Maven将从中央库下载依赖项,并存放在本地库中。本地存储库只是本机上的一个目录,这个目录位置可配置。另外除了中央库,还可以配置其他远程库,例如公司内部可以架设一个远程库供所有开发人员使用。后续会有详细介绍。
构建生命周期、阶段和目标
项目的构建通常包含数个相互独立的任务,可以独立执行,如生成文档,构建jar包等。单个任务的执行过程被称为一个构建生命周期,构建生命周期由一系列的构建阶段组成,每个阶段包含一系列的构建目标。
我们可以执行构建阶段或构建目标。阶段按顺序执行,执行一个阶段则会先执行该阶段之前的所有阶段。当执行构建阶段时,将会按顺序执行其中包含的所有构建目标。构建目标可以被分配到一个或多个构建阶段。我们还可以直接执行构建目标。
插件
插件是构建目标的集合,也称为MOJO (Maven Old Java Object)。可以把插件理解为一个类,而构建目标是类中的方法。构建阶段包含一系列的构建目标,可以理解为按顺序调用各个插件中的构建目标(方法),然后一系列的构建阶段组成一个构建生命周期。
Maven实际上是一个插件执行框架。如有必要,可以用java开发自定义插件。
构建profile
如果需要构建项目的不同版本,可以使用构建profile。例如,项目中需要构建开发版本、测试版本以及正式版本,这些版本可以通过在pom文件中添加不同构建profile构建。执行maven时指定不同的构建profile就可以。
章节
- Maven – 简介
- Maven – 工作原理
- Maven – Repository(存储库)
- Maven – pom.xml 文件
- Maven – 依赖管理
- Maven – 构建生命周期、阶段、目标
- Maven – profile
- Maven – 插件
- Maven – web 实例
- Maven – Eclipse例子
Maven教程 | 奇客谷教程www.qikegu.com
maven版本_Maven – 工作原理相关推荐
- Appium 介绍以及工作原理
目录 1.什么是Appium: 2.Appium各类组件: 3.Appium理念: 4.三张图了解 Appium工作原理: 1.什么是Appium: appium是一个移动端的自动化测试框架,可用于测 ...
- Unreal Engine 4 —— 版本兼容的工作原理以及一些可优化项
http://blog.csdn.net/noahzuo/article/details/51887205 这篇博客讲解了在UE4中涉及到版本之间识别.切换的工作原理以及一些可优化项的介绍. 本博客翻 ...
- SpringMVC→简介、MVC、SpringMVC工作原理、Maven搭建第一个SpringMVC、请求参数接收、重定向、文件上传、AJAX异步访问、请求参数接收绑定JSON、@注解及传参
MVC SpringMVC工作原理 Maven搭建第一个SpringMVC 目录结构 web.xml *-servlet.xml Controller请求处理类 跳转页面 Maven运行服务器项目 浏 ...
- 阿里P7工作总结:Spring MVC的工作原理,看完受益匪浅
这篇文章将深入探讨Spring框架的一部分--Spring Web MVC的强大功能及其内部工作原理. 项目安装 在本文中,我们将使用最新.最好的Spring Framework 5.我们将重点介绍S ...
- java spring工作原理_SpringMVC的工作原理是什么样的,跟Spring的关系是怎么样的?
Spring MVC 的工作原理,很多人都不理解,今天借着题主的这个题目,我在此分享一篇外文翻译的技术贴给大家,希望对大家理解这个知识点有所帮助. 本文将深入探讨Spring框架的一部分--Sprin ...
- RabbitMQ系列(二)深入了解RabbitMQ工作原理及简单使用
RabbitMQ简介 在介绍RabbitMQ之前实现要介绍一下MQ,MQ是什么? MQ全称是Message Queue,可以理解为消息队列的意思,简单来说就是消息以管道的方式进行传递. RabbitM ...
- 深入了解RabbitMQ工作原理及简单使用
深入了解RabbitMQ工作原理及简单使用 RabbitMQ系列文章 RabbitMQ在Ubuntu上的环境搭建 深入了解RabbitMQ工作原理及简单使用 RabbitMQ交换器Exchange介绍 ...
- 深入解读RabbitMQ工作原理及简单使用
深入解读RabbitMQ工作原理及简单使用 RabbitMQ系列目录 RabbitMQ在Ubuntu上的环境搭建 深入解读RabbitMQ工作原理及简单使用 Rabbit的几种工作模式介绍与实践 Ra ...
- 蚂蚁区块链第9课 SSL/TLS工作原理及在蚂蚁BAAS中的应用
1,摘要 辉哥在学习蚂蚁BAAS系统时,发现了一堆证书或者公私钥名称,包括trustCa,ca.crt,client.crt,client.key,pub.txt,MyPKCS12.p12等等文件,不 ...
最新文章
- 每日一皮:为了找个程序员租客,我拼了!
- jquery 开发总结(不断更新)
- 2018.12.15
- 基本算法个人PHP 实现(四)
- c# 修改系统日期格式
- 前端学习(479):html简介
- 中科大在50年代的教学理念
- day27:三剑客之sed
- php常用的日期时间操作
- 多线程小结-----线程参数和 Invoke 机制
- Shell脚本之awk篇
- 2060显卡驱动最新版本_教程:怎么安装更新NVIDIAAMD显卡驱动?
- Alexa工具条解密
- SPSS统计描述分析
- 承上启下继往开来,Python3上下文管理器(ContextManagers)与With关键字的迷思
- python数据分析与可视化
- 根除 ff新鲜事 互联网毒瘤
- python .py文件转exe和更换图标
- python为什么有gil锁_为什么目前python3的全局锁gil性能远逊于python2
- NLP-Job1 赛题理解(天池)
热门文章
- GitHub Actions使用学习最全文档
- 【C语言】(数组方式)输出一组成绩中的最高分与最低分
- Docker映像存储在哪里? Docker容器路径介绍
- 人工智能和分布式账本如何帮助我们解决假新闻
- golang go语言_在Go语言中无需反思即可使用Lodash的好处
- python文本文件csv_我的第一个Python项目:如何将杂乱无章的文本文件转换为纯净的CSV文件
- python cx_Oracle连接Oracle数据库查询
- git提交异常 fatal: LF would be replaced by..
- 双向链表的增、删、查、改、python实现,超详细讲解
- PCA的本质----特征值分解