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.pswp.cn/bicheng/93567.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/93567.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Dify实战应用指南(上传需求稿生成测试用例)

一、Dify平台简介 Dify是一款开源的大语言模型&#xff08;LLM&#xff09;应用开发平台&#xff0c;融合了“Define&#xff08;定义&#xff09; Modify&#xff08;修改&#xff09;”的设计理念&#xff0c;通过低代码/无代码的可视化界面降低技术门槛。其核心价值在于帮助…

学习日志35 python

1 Python 列表切片一、切片完整语法列表切片的基本格式&#xff1a; 列表[start:end:step]start&#xff1a;起始索引&#xff08;包含该位置元素&#xff0c;可省略&#xff09;end&#xff1a;结束索引&#xff08;不包含该位置元素&#xff0c;可省略&#xff09;step&#…

Linux -- 文件【下】

目录 一、EXT2文件系统 1、宏观认识 2、块组内部构成 2.1 Data Block 2.2 i节点表(Inode Table) 2.3 块位图&#xff08;Block Bitmap&#xff09; 2.4 inode位图&#xff08;Inode Bitmap&#xff09; 2.5 GDT&#xff08;Group Descriptor Table&#xff09; 2.6 超…

谷歌手机刷机和面具ROOT保姆级别教程

#比较常用的谷歌输入root面具教程,逆向工程师必修课程# 所需工具与材料清单 真机设备 推荐使用 Google Pixel 4 或其他兼容设备&#xff0c;确保硬件支持刷机操作。 ADB 环境配置 通过安装 Android Studio 自动配置 ADB 和 Fastboot 工具。安装完成后&#xff0c;需在系统环境…

平衡二叉搜索树 - 红黑树详解

文章目录一、红黑树概念引申问题二、红黑树操作一、红黑树概念 红黑树是一棵二叉搜索树&#xff0c;它在每个节点上增加了一个存储位用来表示节点颜色(红色或者黑色)&#xff0c;红黑树通过约束颜色&#xff0c;可以保证最长路径不超过最短路径的两倍&#xff0c;因而近似平衡…

从0开始跟小甲鱼C语言视频使用linux一步步学习C语言(持续更新)8.14

第十六天 第五十二&#xff0c;五十三&#xff0c;五十四&#xff0c;五十五和五十六集 第五十二集 文件包含 一个include命令只能指定一个被包含文件 文件允许嵌套&#xff0c;就是一个被包含的文件可以包含另一个文件。 文件名可以用尖括号或者双引号括起来 但是两种的查找方…

B+树索引分析:单表最大存储记录数

在现代数据库设计中&#xff0c;随着数据量的增加&#xff0c;如何有效地管理和优化数据库成为了一个关键问题。根据阿里巴巴开发手册的标准&#xff0c;当一张表预计在三年内的数据量超过500万条或者2GB时&#xff0c;就应该考虑实施分库分表策略 Mysql B树索引介绍 及 页内储…

三、memblock 内存分配器

两个问题&#xff1a; 1、系统是怎么知道物理内存的&#xff1f;linux内存管理学习&#xff08;1&#xff09;&#xff1a;物理内存探测 2、在内存管理真正初始化之前&#xff0c;内核的代码执行需要分配内存该怎么处理&#xff1f; 在Linux内核启动初期&#xff0c;完整的内存…

Python 桌面应用形态后台管理系统的技术选型与方案报告

下面是一份面向“Python 桌面应用形态的后台管理系统”的技术选型与方案报告。我把假设前提→总体架构→客户端技术选型→服务端与数据层→基础设施与安全→交付与运维→质量保障→里程碑计划→风险与对策→最小可行栈逐层给出。 一、前置假设 & 非功能目标 业务假设 典型…

Winsows系统去除右键文件显示的快捷列表

前言&#xff1a;今天重做了电脑系统&#xff0c;安装的是纯净版的系统。然后手动指定D盘安装了下列软件。&#xff08;QQ&#xff0c;迅雷&#xff0c;百度网盘&#xff0c;搜狗输入法&#xff0c;驱动精灵&#xff09;然后我右键点击桌面的软件快捷方式&#xff0c;出现了一排…

【Go】Gin 超时中间件的坑:fatal error: concurrent map writes

Gin 社区超时中间件的坑&#xff1a;导致线上 Pod 异常重启 在最近的项目中&#xff0c;我们遇到了因为 Gin 超时中间件&#xff08;timeout&#xff09; 引发的生产事故&#xff1a;Pod 异常退出并重启。 问题现场 pod无故重启&#xff0c;抓取标准输出日志&#xff0c;问题…

数据结构:用数组实现队列(Implementing Queue Using Array)

目录 第1步&#xff1a;设计蓝图 (The Struct) 第2步&#xff1a;队列的诞生 (创建与初始化) 第3步&#xff1a;状态检查 (判满与判空) 第4步&#xff1a;核心操作 (入队与出队) 入队 (Enqueue) 出队 (Dequeue) 第5步&#xff1a;善后工作 (销毁队列) 现在&#xff0c;我…

Boost库核心组件与应用

一、BOOST 库简介&#xff1a;C 开发者的 “扩展工具集” 在 C 编程领域&#xff0c;除了标准库&#xff08;STL&#xff09;外&#xff0c;BOOST 库是最具影响力的第三方库之一。它由全球数百位开发者共同维护&#xff0c;包含超过 160 个高质量的组件&#xff0c;覆盖从基础…

机器学习 [白板推导](十二)[卡曼滤波、粒子滤波]

15. 线性动态系统&#xff08;卡曼滤波&#xff0c;Kalman Filter&#xff09; 15.1. 概述 15.1.1. 背景介绍 变量随时间变化的系统叫做动态系统&#xff0c;其中隐变量取值离散的是隐马尔可夫模型&#xff08;HMM&#xff09;&#xff0c;而隐变量取值连续的分为线性动态系统…

RH134 访问网络附加存储知识点

1. NFS 的主要功能是什么&#xff1f;答&#xff1a;NFS是一种分布式文件系统协议&#xff0c;主要功能包括&#xff1a;允许远程计算机通过网络访问共享文件。 实现文件系统在客户端和服务器之间的透明访问。支持文件的共享、读取和写入&#xff0c;使得多个 …

组合模式及优化

组合模式是一种结构型设计模式&#xff0c;其核心思想是将对象组合成树形结构&#xff0c;以表示“部分-整体”的层次关系&#xff0c;使得用户对单个对象和组合对象的使用具有一致性。 一、介绍 核心角色 组合模式包含以下3个关键角色&#xff1a; 抽象组件&#xff08;Compon…

【wmi异常】关于taskkill命令提示“错误:找不到” 以及无法正常获取设备机器码的处理办法

记录一下我的解决方案。 我先查阅了这篇博客&#xff1a;https://blog.csdn.net/qq_45698181/article/details/138957277 发现他写的批处理不知怎么执行不了&#xff0c;后来问了ai又可以执行了&#xff0c;估计是csdn防盗版格式问题 这里写一下我跟ai的对话&#xff0c;大家可…

制造装配、仓储搬运、快递装卸皆适配!MinkTec 弯曲形变传感器助力,让人体工学改变劳动生活

【导语】Minktec 最新实验显示&#xff1a;将Minktec 柔性弯曲形变传感器FlexTail 贴于受试者背部&#xff0c;记录 1 分钟内从洗碗机取餐具的动作&#xff0c;结合配套的flexlib -专用Python库分析&#xff0c;不仅量化出 “越低越伤腰” 的结论&#xff0c;更为制造装配、物流…

Nginx蜘蛛请求智能分流:精准识别爬虫并转发SEO渲染服务

> 一招解决搜索引擎爬虫无法解析现代前端框架的痛点,提升网站收录率与SEO排名! **痛点场景**:你的网站采用Vue/React等前端框架构建,页面内容依赖JavaScript动态渲染。搜索引擎爬虫访问时,只能抓取到空HTML骨架,无法获取真实内容,导致网站收录率低、SEO效果差。 --…

链表。。。

目录 5.1 链表的结点 5.2 插入 5.3 链表长度 5.4 查找 5.5 指定位置删除 5.6 代码 5.1 链表的结点 一个结点包括&#xff1a;值和指向下一个结点的指针。 package com.qcby.链表;public class Node {int value;Node next;public Node(int val){valueval;}Overridepublic…