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

Maven下载和配置-IDEA使用


目录

一 MAVEN

二 三个仓库

1. 本地仓库(Local Repository)

2. 私有仓库(Private Repository,公司内部仓库)

3. 远程仓库(Remote Repository)

依赖查找流程(优先级)

三 下载教程

四 IDEA配置全局环境


一 MAVEN

MAVEN 是一款主要用于Java 项目管理的工具,它通过标准化的项目结构、依赖管理和构建流程,帮助开发者更高效地进行项目开发、构建、测试和部署。

其核心功能体现在以下几个方面:

  • 项目结构标准化:提供了统一的项目目录结构,无论开发者身处何地,只要遵循 MAVEN 的规范,就能快速理解项目的组成部分,减少沟通成本。例如,源代码放在src/main/java目录,测试代码放在src/test/java目录。
  • 依赖管理:自动下载、管理项目所需的第三方库(依赖),并处理依赖之间的传递关系,避免版本冲突等问题。开发者只需在配置文件(pom.xml)中声明所需依赖的坐标(groupId、artifactId、version),MAVEN 就会从中央仓库或指定仓库中获取相应的库。
  • 构建自动化:支持编译、测试、打包(如生成 JAR、WAR 文件)、安装、部署等一系列构建过程的自动化执行。通过简单的命令(如mvn clean package),就能完成从清理到打包的整个流程。

此外,MAVEN 还具有插件机制,开发者可以通过添加各种插件来扩展其功能,满足不同项目的特定需求。它广泛应用于 Java 开发领域,是提高项目开发效率和可维护性的重要工具。


二 三个仓库

在 Maven 中,本地仓库、私有仓库(公司内部仓库)和远程仓库(如 Maven 中央仓库)构成了依赖管理的核心体系,它们的协作流程和作用如下:

1. 本地仓库(Local Repository)

  • 位置:默认在用户目录下的 .m2/repository(可通过 settings.xml 中的 <localRepository> 配置修改)。
  • 作用:存储项目下载的依赖缓存,以及本地构建生成的 jar 包(如 mvn install 会将项目打包后放入本地仓库)。
  • 优先级:Maven 查找依赖时,首先检查本地仓库,如果存在则直接使用,避免重复下载。

2. 私有仓库(Private Repository,公司内部仓库)

  • 常见工具:如 Nexus、Artifactory 等,部署在公司内网。
  • 作用
    • 存储公司内部开发的共享组件(如公共工具类、基础框架),供内部项目复用。
    • 缓存远程仓库的依赖,避免所有开发者重复从外部仓库下载,节省带宽并提高速度。
    • 管理第三方非开源依赖(如某些商业库),这些依赖无法从公共仓库获取。
  • 配置方式:需在项目 pom.xml 或全局 settings.xml 中配置私有仓库地址,让 Maven 知道从这里查找依赖。

3. 远程仓库(Remote Repository)

  • 最常用:Maven 中央仓库(Central Repository:),包含大量开源项目的依赖。
  • 其他类型:第三方开源库的专属仓库(如 Spring 仓库、Google 仓库等)。
  • 作用:提供公开的依赖资源,当本地仓库和私有仓库都没有所需依赖时,Maven 会从远程仓库下载。

依赖查找流程(优先级)

当项目需要某个依赖时,Maven 的查找顺序为:

  1. 本地仓库 → 若存在,直接使用;
  2. 私有仓库 → 若本地没有,会请求公司私有仓库,若存在则下载到本地仓库并使用;
  3. 远程仓库 → 若私有仓库也没有,会从配置的远程仓库(如中央仓库)下载,并存入本地仓库和私有仓库(如果私有仓库开启缓存)。

通过这种多层仓库结构,既能提高依赖获取效率,又能保证公司内部资源的安全管理和复用。


三 下载教程

1.选择官网下载(maven)

Welcome to Apache Maven – Maven

选择阿帕奇(著名的开源框架非营利性组织)

下载解压后:

这里需要配置conf文件夹里面的settings文件:

首先大概在50-60行左右的位置 配置一个你自己的jar仓库地址用来保存以后下载的maven依赖对应的jar包 要创建一个仓库文件夹所以 例如:

然后把地址放在 localRepository这个位置:

接下来配置一个远程仓库(这里用aliyun(阿里云镜像))

	<mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>阿里云公共仓库</name><url>https://maven.aliyun.com/repository/public</url>
</mirror>

一定一定不要漏或者多删东西!!!!!!否则会导致maven到集成环境中无法加载依赖!!!

然后到这里 配置一下环境变量:

打开高级系统设置(此电脑属性打开):

注意啊 是系统变量 当然path里面也可以直接引用 但是方便管理就这样:

在里面创建一个这样的

保存退出:

win + R 命令行输入cmd 再输入mvn -v显示你下载的maven版本就成功了!:

2.这里是博主自己的maven 3.9.6 下载地址

http://通过网盘分享的文件:Maven安装包 链接: https://pan.baidu.com/s/1Ueu3nFZcQSGytmaaYY9Z6w?pwd=c3xk 提取码: c3xk --来自百度网盘超级会员v2的分享
 




四 IDEA配置全局环境

打开IDEA主页面:

点击ALL settings:

点击Build Tools中的Maven:

第一个是maven的源路径 选择自己下载的

第二个是maven的配置文件,选择源路径对应目录下的settings文件

第三个是maven的自己的jar仓库,你以后配置的maven依赖jar包先从本地仓库获取

然后再打开 Importing和Runner 把jdk和jre换成自己的:

还有个编码格式在Complier(编译)里面:

全部搞定之后 你创建一个新项目(maven项目或者空项目乃至Spring项目都会有对应的maven仓库配置):

你的项目路径里面有个pom.xml里面包含基础依赖:

打开是这样的开头

这段XML代码定义了Maven项目的基本坐标信息:
- `<groupId>`:组织ID,标识项目所属的组织或公司
- `<artifactId>`:项目ID,标识项目在组织中的唯一名称
- `<version>`:版本号,SNAPSHOT表示开发中的快照版本

这三项构成了Maven项目的唯一标识:

LifeStyle指的是maven的生命周期,Plugins指的是是插件,执行生命周期的时候就会调用对应插件,然后你下载的依赖jar包会显示在Dependencies:

你的目录一般是以下这种:

这是一个基于 Maven 构建的 Java 项目(maven-project01)在开发工具(如 IntelliJ IDEA)中的目录结构。 

  • java-web:是项目所在的父目录(工作空间类的概念)。
  • .idea:是 IDEA 为项目生成的配置目录,存储项目的设置、历史记录等 IDE 相关信息。
  • maven-project01:是具体的 Maven 项目模块。
    • src:源代码目录,遵循 Maven 约定,分为 main(主代码)和 test(测试代码)两部分。
      • main:存放项目的主要代码。
        • java:用于存放 Java 源代码文件,开发人员编写的业务逻辑、类等都放在这里。
        • resources:存放项目的资源文件,比如配置文件(.properties.xml 等)、静态资源等。
      • test:存放测试相关的代码。
        • java:存放 Java 测试代码,比如单元测试类,用于验证 main/java 中代码的正确性。
        • com.itheima:是测试代码中的包名,用于组织测试类,通常和主代码的包结构对应,方便管理。
    • target:Maven 构建项目时生成的输出目录,编译后的字节码文件、打包生成的 JAR/WAR 文件等都会放在这里。
    • pom.xml:Maven 项目的核心配置文件,用于定义项目的坐标(groupId、artifactId、version)、依赖(引入其他库)、构建插件等,Maven 依据此文件进行项目的构建、依赖管理等操作。

到这里 基本就可以构建你的maven项目了

http://www.dtcms.com/a/334667.html

相关文章:

  • 自动化测试的下一站:AI缺陷检测工具如何实现“bug提前预警”?
  • uniapp跨端适配方案
  • Qt 动态属性(Dynamic Property)详解
  • SDN安全开发环境中常见的框架,工具,第三方库,mininet常见指令介绍
  • 【基础-判断】HarmonyOS提供了基础的应用加固安全能力,包括混淆、加密和代码签名能力
  • 守护品质安全,防伪溯源系统打造全链路信任体系
  • 物联网 (IoT) 的顶级硬件平台
  • IEEEtaes.cls解析
  • python---模块
  • 防御保护15
  • YOLOv8环境配置命令
  • GCN图卷积神经网络的Pytorch实现
  • Azure AI Search 探索总结
  • 数据库索引视角:对比二叉树到红黑树再到B树
  • 【计算机视觉与深度学习实战】03基于Canny、Sobel和Laplacian算子的边缘检测系统设计与实现
  • DeepSeek-R1-深度解析-通过强化学习激励大语言模型的推理能力
  • Spring AI 玩转工具调用:模型帮你精确设闹钟
  • 九尾狐未来机械锂晶核
  • 盲盒抽谷机小程序系统开发:从0到1的完整方法论
  • 《从入门到精通:Kafka核心原理全解析》
  • 医院管理中的PythonAI编程:资源调配、质量监控、成本控制、医保监管与科研转化
  • 程序设计|C语言教学——C语言基础2:计算与控制语句
  • 登录与登录校验:Web安全核心解析
  • 【AndroidStudio修改中文设置】
  • 宋红康 JVM 笔记 Day03|内存结构概述、类加载器与类的加载过程、类加载器分类
  • java基础(九)sql
  • 复合机器人食品分拣生产线:一体化控制系统引领高效柔性新食代
  • Android Jetpack | Lifecycle
  • vscode的使用
  • FPGA实现I2C通信方案