【安装指南】maven下载、安装与配置详细教程

🌼一、概述

maven功能与python的pip类似。

Apache Maven是一个用于软件项目管理和构建的强大工具。它是基于项目对象模型的,用于描述项目的构建配置和依赖关系。以下是一些关键的 Maven 特性和概念:

  1. POM(Project Object Model): Maven项目通过一个XML文件,通常称为pom.xml,来描述项目的元数据和配置信息。POM包含项目的基本信息、构建配置、依赖关系等。

  2. 依赖管理: Maven简化了项目的依赖管理。通过在pom.xml文件中声明依赖关系,Maven会自动下载所需的库并添加到项目构建路径中。

  3. **生命周期和插件:**Maven定义了一组构建生命周期(Build Lifecycle),包括清理、编译、测试、打包、部署等阶段。每个生命周期包含一组阶段,而插件则用于执行这些阶段的任务。

  4. **仓库(Repository):**Maven使用本地和远程仓库来存储和获取构建所需的依赖。本地仓库存储在开发者本地机器上,而远程仓库通常是中央仓库(Central Repository)或其他自定义仓库。

  5. **中央仓库:**Maven的中央仓库是一个集中的、可公共访问的仓库,包含了大量的开源Java库和工具。Maven会自动从中央仓库下载依赖。

  6. **插件体系结构:**Maven的插件体系结构允许开发者扩展和定制构建过程。插件可以提供额外的目标和任务,以满足特定项目的需求。

  7. 多模块项目: Maven支持多模块项目,允许将大型项目划分为若干个模块,每个模块都有自己的pom.xml文件。这种结构有助于组织和管理复杂的项目。

  8. **约定优于配置:**Maven遵循"约定优于配置"的原则,通过定义一些默认的规则和标准目录结构,简化了项目的配置。这意味着,如果项目结构符合约定,很多配置可以省略。

总体而言,Maven是一个广泛使用的构建工具,它提供了一种简单的方式来管理项目的构建、依赖和发布。通过采用约定优于配置的理念,Maven使得项目构建过程更加标准化和易于维护。


🍀二、下载maven

**maven官网:**Maven -- Download Apache Maven Windows下载apache-maven-3.9.5-bin.zip

资源获取:关注文末公众号回复 apache-maven-3.6.3


🌷三、解压maven

比如我将其存放在C:\Program Files\Java\maven


🍁四、配置maven

a 配置环境变量

打开环境变量,新建系统变量,设置如下:

在系统变量的Path路径下加入

检查是否配置完成

打开终端输入

复制代码
mvn -v

显示这样说明配置成功!

b 配置镜像【可选,为了下载更快】

打开setting.xml

找到内容

将原来的内容修改成

复制代码
<mirrors>
    <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>central</mirrorOf>
        <name>Nexus-aliyun</name>
        <url>https://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
</mirrors>

c 配置私服仓库【可选,为了确定jar包存储位置】

后下载的jar包都会放在该目录下。

复制代码
  <!-- 配置私服仓库地址 -->
  <localRepository>D:\maven\mvnRespo</localRepository>

在D盘创建D:\maven\mvnRespo文件夹


🍁五**、常用**maven指令

1. maven常用命令
命令 描述

mvn clean 对项目进行清理,删除target目录下编译的内容

mvn compile 编译项目源代码

mvn test 对项目进行运行测试

mvn package 打包文件并存放到项目的target目录下,打包好的文件通常都是编译后的 class文件

mvn install 在本地仓库生成仓库的安装包,可供其他项目引用,同时打包后的文件放 到项目的target目录下

相关推荐
Lhappy嘻嘻11 分钟前
Java IO|File 文件操作 + 字节流 / 字符流完整笔记 + 递归删除文件实战
java·笔记·php
伊玛目的门徒33 分钟前
试用leetcode之典中典 二数之和问题
java·算法·leetcode
懒鸟一枚3 小时前
深入理解 Linux 内存、Swap 交换分区与分页机制的关系
java·linux·数据库
我命由我123455 小时前
执行 Gradle 指令报错,无法将“grep”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
考虑考虑5 小时前
Sentinel安装
java·后端·微服务
凤凰院凶涛QAQ7 小时前
《Java版数据结构 & 集合类剖析》栈与队列:“push/pop 是栈的灵魂,offer/poll 是队列的骨架——四组 API,两种人生”
java·开发语言·数据结构
掘金_答案7 小时前
上线那天,一个 ConcurrentHashMap 差点送走我的 AI 客服——3 天排查 JVM 血泪史
java·后端·架构
猿与禅8 小时前
CosId 分布式 ID 生成器完全教程:从架构原理到生产落地
java·shardingsphere·雪花算法·分布式id·高性能·cosid·号段模式
MindUp8 小时前
企业网盘权限模型解析:多层级访问控制与审计能力选型指南
java·linux·运维
NG4778 小时前
【软件设计与体系结构】-策略设计模式
java·设计模式·软件工程