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 – 工作原理相关推荐

  1. Appium 介绍以及工作原理

    目录 1.什么是Appium: 2.Appium各类组件: 3.Appium理念: 4.三张图了解 Appium工作原理: 1.什么是Appium: appium是一个移动端的自动化测试框架,可用于测 ...

  2. Unreal Engine 4 —— 版本兼容的工作原理以及一些可优化项

    http://blog.csdn.net/noahzuo/article/details/51887205 这篇博客讲解了在UE4中涉及到版本之间识别.切换的工作原理以及一些可优化项的介绍. 本博客翻 ...

  3. SpringMVC→简介、MVC、SpringMVC工作原理、Maven搭建第一个SpringMVC、请求参数接收、重定向、文件上传、AJAX异步访问、请求参数接收绑定JSON、@注解及传参

    MVC SpringMVC工作原理 Maven搭建第一个SpringMVC 目录结构 web.xml *-servlet.xml Controller请求处理类 跳转页面 Maven运行服务器项目 浏 ...

  4. 阿里P7工作总结:Spring MVC的工作原理,看完受益匪浅

    这篇文章将深入探讨Spring框架的一部分--Spring Web MVC的强大功能及其内部工作原理. 项目安装 在本文中,我们将使用最新.最好的Spring Framework 5.我们将重点介绍S ...

  5. java spring工作原理_SpringMVC的工作原理是什么样的,跟Spring的关系是怎么样的?

    Spring MVC 的工作原理,很多人都不理解,今天借着题主的这个题目,我在此分享一篇外文翻译的技术贴给大家,希望对大家理解这个知识点有所帮助. 本文将深入探讨Spring框架的一部分--Sprin ...

  6. RabbitMQ系列(二)深入了解RabbitMQ工作原理及简单使用

    RabbitMQ简介 在介绍RabbitMQ之前实现要介绍一下MQ,MQ是什么? MQ全称是Message Queue,可以理解为消息队列的意思,简单来说就是消息以管道的方式进行传递. RabbitM ...

  7. 深入了解RabbitMQ工作原理及简单使用

    深入了解RabbitMQ工作原理及简单使用 RabbitMQ系列文章 RabbitMQ在Ubuntu上的环境搭建 深入了解RabbitMQ工作原理及简单使用 RabbitMQ交换器Exchange介绍 ...

  8. 深入解读RabbitMQ工作原理及简单使用

    深入解读RabbitMQ工作原理及简单使用 RabbitMQ系列目录 RabbitMQ在Ubuntu上的环境搭建 深入解读RabbitMQ工作原理及简单使用 Rabbit的几种工作模式介绍与实践 Ra ...

  9. 蚂蚁区块链第9课 SSL/TLS工作原理及在蚂蚁BAAS中的应用

    1,摘要 辉哥在学习蚂蚁BAAS系统时,发现了一堆证书或者公私钥名称,包括trustCa,ca.crt,client.crt,client.key,pub.txt,MyPKCS12.p12等等文件,不 ...

最新文章

  1. 每日一皮:为了找个程序员租客,我拼了!
  2. jquery 开发总结(不断更新)
  3. 2018.12.15
  4. 基本算法个人PHP 实现(四)
  5. c# 修改系统日期格式
  6. 前端学习(479):html简介
  7. 中科大在50年代的教学理念
  8. day27:三剑客之sed
  9. php常用的日期时间操作
  10. 多线程小结-----线程参数和 Invoke 机制
  11. Shell脚本之awk篇
  12. 2060显卡驱动最新版本_教程:怎么安装更新NVIDIAAMD显卡驱动?
  13. Alexa工具条解密
  14. SPSS统计描述分析
  15. 承上启下继往开来,Python3上下文管理器(ContextManagers)与With关键字的迷思
  16. python数据分析与可视化
  17. 根除 ff新鲜事 互联网毒瘤
  18. python .py文件转exe和更换图标
  19. python为什么有gil锁_为什么目前python3的全局锁gil性能远逊于python2
  20. NLP-Job1 赛题理解(天池)

热门文章

  1. GitHub Actions使用学习最全文档
  2. 【C语言】(数组方式)输出一组成绩中的最高分与最低分
  3. Docker映像存储在哪里? Docker容器路径介绍
  4. 人工智能和分布式账本如何帮助我们解决假新闻
  5. golang go语言_在Go语言中无需反思即可使用Lodash的好处
  6. python文本文件csv_我的第一个Python项目:如何将杂乱无章的文本文件转换为纯净的CSV文件
  7. python cx_Oracle连接Oracle数据库查询
  8. git提交异常 fatal: LF would be replaced by..
  9. 双向链表的增、删、查、改、python实现,超详细讲解
  10. PCA的本质----特征值分解