程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • 依赖管理 - Maven

    • Maven 安装配置
      • 1. 为什么学习 Maven
      • 2. Maven 简介
      • 3. Maven 的安装
        • 3.1 从官网下载 Maven
        • 3.2 配置 Maven 环境变量
        • 3.3 配置 Maven 本地仓库
        • 3.4 在 IntelliJ IDEA 中配置 Maven
        • 3.5 配置 Maven 项目的 pom.xml
      • 4. Maven POM(项目对象模型)
      • 5. Maven 坐标
      • 6. Maven 仓库
    • Maven 仓库解析
    • Maven 项目构建
    • Maven 依赖管理
    • 手动安装Maven依赖
    • Maven 聚合
    • Maven 继承
    • Maven 属性
    • Maven 版本与测试
    • Maven 资源与多环境配置
    • Maven 生命周期与插件
    • 本地搭建Maven私服
    • Docker搭建Maven私服
    • Maven 上传中央仓库
    • Maven 依赖排除插件
  • 开发管理 - Git

  • Git小乌龟教程

  • 代码管理
  • 依赖管理 - Maven
scholar
2024-08-20
目录

Maven 安装配置

# Maven 安装配置

  • 1. 为什么学习 Maven
  • 2. Maven 简介
  • 3. Maven 的安装
    • 3.1 从官网下载 Maven
    • 3.2 配置 Maven 环境变量
    • 3.3 配置 Maven 本地仓库
    • 3.4 在 IntelliJ IDEA 中配置 Maven
    • 3.5 配置 Maven 项目的 pom.xml
  • 4. Maven POM(项目对象模型)
  • 5. Maven 坐标
  • 6. Maven 仓库

前言

Maven 官网:http://maven.apache.org/ (opens new window)
Maven 下载:http://maven.apache.org/download.cgi (opens new window)

# 1. 为什么学习 Maven

相信读到这篇文章的许多人有过或多或少的项目经历,说到项目,在纯是原生态代码无框架的时候,我们最痛苦的一件事就是导入各种各样的jar包,jar包太多以至于我们很难管理,项目功能稍多,就会出现好多好多的包,你要考虑在哪找这个包,还有它的包的依赖,让人很痛苦!这个时候,我们的救世主maven出现,轻松帮你解决这些问题。

Maven 的优点:

  1. 依赖管理简化:
    传统项目中,需要手动将 Jar 包复制到项目的 WEB-INF/lib 目录下。而使用 Maven 后,只需在 pom.xml 中配置依赖,Maven 会自动管理这些 Jar 包并放置在本地仓库中,无需手动复制。

  2. 自动下载依赖:
    Maven 可以在联网状态下,自动从远程仓库下载所需的依赖包,首先查找本地仓库,如果本地没有,再去远程仓库下载。这避免了手动查找和下载依赖包的麻烦。

  3. 自动处理依赖关系:
    Maven 会自动解析并下载依赖项的依赖,避免了手动管理依赖关系可能带来的问题。

  4. 项目模块化管理:
    使用 Maven,可以将一个大型项目拆分为多个模块,分别进行构建和管理,提升了项目的可维护性和开发效率。

# 2. Maven 简介

Maven 是 Apache 软件基金会开发的一个开源项目管理工具。它主要用于项目的构建、依赖管理、项目测试、打包和发布等任务。Maven 通过 pom.xml 文件管理项目的配置,使得项目的依赖关系和构建过程更加清晰和可维护。

# 3. Maven 的安装

在使用 Maven 之前,首先需要安装 JDK,因为 Maven 工作时需要通过网络下载各种插件以完成任务。因此,确保网络畅通也是必要的。

# 3.1 从官网下载 Maven

  1. 打开 Maven 官网 (opens new window)。

  2. 点击“Download”下载 Maven 安装包。

    Maven 下载

  3. 找到并下载适合你的操作系统的文件。

    找到下载文件

  4. 下载完成后,将压缩包解压到你选择的文件夹中(建议不要放在中文目录下,以避免可能的路径问题)。

    解压 Maven

# 3.2 配置 Maven 环境变量

  1. 解压后,打开“高级系统设置”,并在系统环境变量中配置环境变量。

    image-20240813212646366

    • 点击“新建”,在“变量名”中输入 MAVEN_HOME,在“变量值”中输入 Maven 的解压路径。

    配置 MAVEN_HOME

    image-20240813212711264

  2. 为了能够在命令行中全局使用 Maven 命令,还需要将 Maven 的 bin 目录添加到 Path 变量中。

    • 找到 Path 变量,点击“编辑”,然后在弹出的窗口中添加 Maven 的 bin 目录路径。

    配置 Path

  3. 配置完成后,点击“确定”保存所有设置并关闭窗口。

  4. 打开命令提示符(CMD),输入 mvn -version,如果显示 Maven 的版本信息,说明配置成功。

    验证 Maven 配置

# 3.3 配置 Maven 本地仓库

Maven 默认会将下载的 Jar 包存储到本地仓库中。如果你希望自定义仓库路径或配置镜像仓库,可以修改 Maven 的配置文件 settings.xml。

  1. 打开 Maven 解压后的目录,进入 conf 文件夹,找到 settings.xml 文件。

    找到 settings.xml

  2. 编辑 settings.xml,在 <mirrors> 标签中添加阿里云的镜像仓库配置,以提高依赖下载速度:

    <mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
    
    1
    2
    3
    4
    5
    6

    配置阿里云镜像

# 3.4 在 IntelliJ IDEA 中配置 Maven

  1. 打开 IntelliJ IDEA,进入 Settings,找到 Build, Execution, Deployment -> Build Tools -> Maven。

    配置 Maven

  2. 在这里你可以设置 Maven 的安装目录、用户设置文件(settings.xml),以及本地仓库的位置。

# 3.5 配置 Maven 项目的 pom.xml

Maven 项目通过 pom.xml 文件来管理依赖、插件和项目的构建过程。可以通过 Maven 仓库官网 Maven Repository (opens new window) 搜索所需的 Jar 包,并将其依赖配置添加到 pom.xml 文件中。

  1. 打开 Maven Repository (opens new window),搜索你需要的库。

    Maven 仓库

  2. 选择所需的版本,并复制其 Maven 坐标信息。

    选择版本

  3. 将复制的坐标信息粘贴到你的 pom.xml 文件中,然后刷新 Maven 项目以下载依赖。

    配置 pom.xml

    刷新 Maven 项目


# 4. Maven POM(项目对象模型)

POM(Project Object Model)是 Maven 的核心组件,存储在项目的根目录下,文件名为 pom.xml。它以 XML 文件的形式定义了项目的基本信息、依赖、插件以及构建过程。

POM 文件包含的主要信息:

  • 项目依赖:定义项目所需的外部库。
  • 插件:定义构建、测试、打包等任务所需的插件。
  • 构建时的配置文件:用于管理不同环境的配置。
  • 项目版本:指定项目的版本信息。
  • 开发者信息:记录开发团队成员的信息。
  • 邮件列表:设置开发团队的沟通渠道。

当 Maven 执行任务时,它会首先查找并读取项目中的 pom.xml 文件,从中获取所需的配置信息,然后执行相应的任务。


# 5. Maven 坐标

Maven 坐标是一套用于唯一标识项目构件的规则,包含 groupId、artifactId、version 和 packaging 等元素。每一个 Maven 项目或库都必须明确定义自己的坐标,这些坐标是 Maven 查找和下载依赖的依据。

Maven 坐标元素:

  • groupId:定义项目隶属的组织或公司,通常是唯一的,通常使用公司网址的反写,例如 com.example。
  • artifactId:定义项目的名称,例如 my-project。
  • version:定义项目的版本号,例如 1.0.0。
  • packaging:定义项目的打包方式,默认值为 jar。

举例:

<groupId>com.example</groupId>
<artifactId>my-project</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
1
2
3
4

# 6. Maven 仓库

Maven 仓库分为本地仓库和远程仓库两类:

  • 本地仓库:存储在开发者机器上的仓库,Maven 会首先在本地仓库查找依赖,如果找不到,才会去远程仓库下载。
  • 远程仓库:通常指 Maven Central Repository 或者其他公司自建的远程仓库,存储项目所需的各种依赖库。

Maven 查找依赖的流程:

  1. 首先检查本地仓库中是否存在所需的依赖。
  2. 如果本地仓库中不存在,则去远程仓库中查找并下载。
  3. 如果远程仓库中也没有,则 Maven 报错。
编辑此页 (opens new window)
上次更新: 2025/01/05, 02:09:04
Maven 仓库解析

Maven 仓库解析→

Theme by Vdoing | Copyright © 2019-2025 程序员scholar
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式