• 【Maven】你好,Maven >>> 与Maven的初次见面~


    在这里插入图片描述

    个人主页:.29.的博客
    学习社区:进去逛一逛~
    个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的道路上摸爬滚打,记录学习的过程~

    在这里插入图片描述


    一、了解Maven

    Apache Maven是一个软件项目管理和综合工具,是 Apache 下的一个纯 Java 开发的开源项目,基于项目对象模型(POM)的概念,Maven可以从一个中心信息块管理项目的构建、报告和文档等操作。

    Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。

    Maven 也可被用于构建和管理各种项目,例如 C#,Ruby,Scala 和其他语言编写的项目。Maven 曾是 Jakarta 项目的子项目,现为由 Apache 软件基金会主持的独立 Apache 项目。


    二、Maven的构建与依赖

    Maven能够帮助我们完成地事情如下:

    • 构建
    • 文档生成
    • 报告
    • 依赖
    • SCMs
    • 发布
    • 分发
    • 邮件列表

    上述功能中,我们具体去了解一下 构建依赖

    ⚪构建

    构建过程包含的主要环节有:

    • 清理:删除上一次构建的结果,从而准备下一次的构建。

    • 编译:Java源程序编译成 *. class字节码文件。

    • 测试:运行提前准备好的测试程序。

    • 报告:针对刚才测试的结果生成一个全面的信息。

    • 打包:
              - Java工程: jar包。
              - Web工程: war包。

    • 安装:把一个Maven工程经过打包操作生成的 jar包或 war包存入Maven仓库。

    • 部署:
              - 部署 jar包:把 jar包部署到Nexus私服服务器上。
              - 部署 war包:借助相关的Maven插件,将 war包部署到Tomcat服务器上。


    ⚪依赖

    概念
    如果工程A中使用到了工程B中的类、接口配置文件等资源,那么我们就可以说A依赖B,简单来讲就是jar包与jar包之间的相互依赖。

    依赖管理中需要完成的事情

    • jar 包的下载:使用Maven以后, jar包会从规范的远程仓库下载带本地。
    • jar 包间的依赖:通过依赖的传递性自动完成。
    • jar 包间的冲突:通过对依赖的配置进行调整,让某些 jar包不会被导入。

    三、Maven的功能与特性

    • 遵循统一的项目设置 - 在几秒钟内启动一个新项目或模块

    • 在所有项目中共享 - 新开发人员进入项目无须启动时间

    • 依赖管理,包括自动更新、依赖关系闭包(也称为传递依赖关系)

    • 能够同时轻松处理多个项目

    • 一个庞大且不断增长的库和元数据存储库,开箱即用,并与最大的开源项目达成安排,以实时提供其最新版本

    • 可扩展,能够轻松地用Java或脚本语言编写插件

    • 即时访问新功能,只需很少或无需额外配置

    • 用于在 Maven 外部进行依赖管理和部署的 Ant 任务

    • 基于模型的构建:Maven能够将任意数量的项目构建为预定义的输出类型,例如JAR,WAR或基于项目元数据的分发,在大多数情况下无需执行任何脚本。

    • 项目信息的连贯站点:使用与构建过程相同的元数据,Maven能够生成一个网站或PDF,包括您想要添加的任何文档,并将有关项目开发状态的标准报告添加到该标准报告中。此信息的示例可以在本网站左侧导航底部的“项目信息”和“项目报告”子菜单下看到。

    • 发布管理和分发发布:无需太多额外的配置,Maven 将与您的源代码管理系统(例如 Subversion 或 Git)集成,并根据某个标签管理项目的发布。它还可以将其发布到分发位置以供其他项目使用。Maven 能够发布单个输出,例如 JAR、包含其他依赖项和文档的存档,或作为源代码分发。

    • 依赖关系管理:Maven鼓励使用JAR和其他依赖关系的中央存储库。Maven 带有一种机制,项目的客户端可以使用该机制从中央 JAR 存储库下载构建项目所需的任何 JAR,就像 Perl 的 CPAN 一样。这允许Maven的用户跨项目重用JAR,并鼓励项目之间的通信,以确保处理向后兼容性问题。


    给大家赖一个 ~

    <dependencies>
        
        <dependency>
            <groupId>...groupId>        
            <artifactId>...artifactId>  
            <version>...version>        
            <scope>...scope>            
            <systemPath>${basedir}\src\lib\...systemPath> 
        dependency> 
    dependencies>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

  • 相关阅读:
    NFT平台开发:NFT数字馆藏平台开发
    适配器模式
    狮子鱼社区团购小程序v18.1独立全开源版+小程序前端
    【性能测试】慢查询日志分析-实战篇
    LaneNet 论文阅读
    计算机毕业设计Java研究生实验室综合管理系统(源码+系统+mysql数据库+Lw文档)
    javaWeb项目-邮票鉴赏系统功能介绍
    【正点原子STM32连载】第二章 STM32简介 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
    uniapp2023年微信小程序头像+昵称分别获取
    drag diffusion中的gradio代码逐行解析(二)
  • 原文地址:https://blog.csdn.net/ebb29bbe/article/details/127812017