• SpringBoot(三):什么是Maven?


    什么是Maven?

    Maven 翻译为"专家"、"内行",是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。

    Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。Maven 也可被用于构建和管理各种项目。

    Maven特点

    1、遵循最佳实践的简单项目设置 - 在几秒钟内启动新项目或模块。

    2、所有项目的一致使用 - 意味着新开发人员进入项目的时间不会增加。

    3、卓越的依赖管理,包括自动更新,依赖关闭(也称为传递依赖)。

    4、能够轻松地同时处理多个项目。

    Maven 依赖管理

    Maven 一个核心的特性就是依赖管理。当我们处理多模块的项目(包含成百上千个模块或者子项目),模块间的依赖关系就变得非常复杂,管理也变得很困难。针对此种情形,Maven 提供了一种高度控制的方法。

    一种相当常见的情况,比如说 A 依赖于其他库 B。如果,另外一个项目 C 想要使用 A ,那么 C 项目也需要使用库 B。

    Maven 可以避免去搜索所有所需库的需求。Maven 通过读取项目文件(pom.xml),找出它们项目之间的依赖关系。

    我们需要做的只是在每个项目的 pom 中定义好直接的依赖关系。其他的事情 Maven 会帮我们搞定。

    通过可传递性的依赖,所有被包含的库的图形会快速的增长。当有重复库时,可能出现的情形将会持续上升。Maven 提供一些功能来控制可传递的依赖的程度。

    功能功能描述
    依赖调节决定当多个手动创建的版本同时出现时,哪个依赖版本将会被使用。 如果两个依赖版本在依赖树里的深度是一样的时候,第一个被声明的依赖将会被使用。
    依赖管理直接的指定手动创建的某个版本被使用。例如当一个工程 C 在自己的依赖管理模块包含工程 B,即 B 依赖于 A, 那么 A 即可指定在 B 被引用时所使用的版本。
    依赖范围包含在构建过程每个阶段的依赖。
    依赖排除任何可传递的依赖都可以通过 "exclusion" 元素被排除在外。举例说明,A 依赖 B, B 依赖 C,因此 A 可以标记 C 为 "被排除的"。
    依赖可选任何可传递的依赖可以被标记为可选的,通过使用 "optional" 元素。例如:A 依赖 B, B 依赖 C。因此,B 可以标记 C 为可选的, 这样 A 就可以不再使用 C。

    依赖搜索顺序

    当我们执行 Maven 构建命令时,Maven 开始按照以下顺序查找依赖的库:

    1、 在本地仓库中搜索,如果找不到,执行步骤 2,如果找到了则执行其他操作。

    2、在中央仓库中搜索,如果找不到,并且有一个或多个远程仓库已经设置,则执行步骤 4,如果找到了则下载到本地仓库中以备将来引用。

    3、如果远程仓库没有被设置,Maven 将简单的停滞处理并抛出错误(无法找到依赖的文件)。

    4、 在一个或多个远程仓库中搜索依赖的文件,如果找到则下载到本地仓库以备将来引用,否则 Maven 将停止处理并抛出错误(无法找到依赖的文件)。

  • 相关阅读:
    【华为机试真题 JAVA】字符串加密-100
    prism.js使用图文教程
    图解第一类曲面积分与第二类曲面积分的关系
    linux部署页面内容
    【python爬虫】10.指挥浏览器自动工作(selenium)
    数据库访问-records库
    数据结构之堆,栈的实现
    HTML+CSS:rem、vw / vh移动适配、媒体查询
    MyBatis中常见问题及解决
    CSP模拟51联测13 B.狗
  • 原文地址:https://blog.csdn.net/qq_32343577/article/details/128129625