当前位置: 首页 > article >正文

【安装指南】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目录下  


http://www.kler.cn/a/226394.html

相关文章:

  • Vue.js 中子组件向父组件传值的方法
  • JS实例之:JS语音播报 new SpeechSynthesisUtterance();
  • 分别用JavaScript,Java,PHP,C++实现桶排序的算法(附带源码)
  • leetcode刷题(剑指offer) 103.二叉树的锯齿形层序遍历
  • 《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第6章 逻辑斯谛回归与最大熵模型(1)6.1 逻辑斯谛回归模型
  • Apache Doris 整合 FLINK CDC + Iceberg 构建实时湖仓一体的联邦查询
  • 什么是ISO21434网络安全中的信息安全?-亚远景
  • sklearn.preprocessing 标准化、归一化、正则化
  • [C++]类和对象(中)
  • C++类和对象入门(二)
  • DockerCompose+SpringBoot+Nginx+Mysql实践
  • 正点原子--STM32定时器学习笔记(1)(更新中....)
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之TimePicker组件
  • 【Spark系列6】如何做SQL查询优化和执行计划分析
  • 三步实现 Sentinel-Nacos 持久化
  • Redis常用数据类型--Hash
  • C#学习笔记_继承
  • vue-3d-model
  • 极限存在法则【高数笔记】
  • 八. 实战:CUDA-BEVFusion部署分析-学习spconv的优化方案(Implicit GEMM conv)