MAVEN利器:一文带你了解IDEA中如何使用Maven
前言:
强大的构建工具——Maven。作为Java生态系统中的重要组成部分,Maven为开发人员提供了一种简单而高效的方式来构建、管理和发布Java项目。无论是小型项目还是大型企业级应用,Maven都能帮助开发人员轻松处理依赖管理、编译、测试和部署等任务。

在上一篇文章中,我们学习了如何在自己的电脑环境中安装MAVEN软件,但实际上我们日常使用中并不是一直在命令行中使用MAVEN的,我们更多的是基于IDEA编译器来使用MAVEN,那么我们今天就来学习如何在自己的IDEA中配置MAVEN。
目录
前言:
配置方案:
1.配置当前工程下的Maven环境:
2.配置全局工程下的Maven环境:
如何在idea中创建MAVEN项目:
MAVEN中的坐标:
总结:
配置方案:
1.配置当前工程下的Maven环境:
首先打开idea中的setting,点击到build Tools中

然后进行如下配置:
再打开Runner界面,修改JRE的版本:
再打开Complier下的java Complier,配置字节码文件为11

这样我们就把maven与当前的工程进行了关联,如果我们想要在其他工程中使用MAVEN,则需要按照相同的步骤再来一遍。
2.配置全局工程下的Maven环境:
全局的配置是在这里进行的:

首先,我们要在Customize中点击All setting选项:

再按照我们配置当前工程下的MAVEN环境的步骤进行就可以
1.配置 maven的地址,setting地址,私有仓库地址
2.配置JRE版本:

3.配置字节码文件:

这样我们就把maven与整个IDEA都关联了起来,以后我们只需要创建工程,那么这个工程就会自动与MAVEN进行关联,不再需要我们去手动设置
如何在idea中创建MAVEN项目:
1.在空项目中创建maven项目:
(不要跟这个方法创建,后面有说明!)
我们先创建一个空项目,在空项目中点击file中的new,之后进行如下设置:

- “Archetype” (原型) 指的是一种项目模板或者蓝图,它定义了项目的结构和相关的配置。Maven 提供了一些官方的原型供开发者使用,比如 “maven-archetype-quickstart”,它是一个用于快速创建简单 Java 项目的原型。原型提供了一个起点,帮助你快速搭建项目的基本结构,省去了手动配置的麻烦。
-
“Version” (版本) 指的是原型的版本号。每个原型都有自己的版本,这些版本可能会包含不同的特性、修复 bug 或者改进。你可以根据自己的需要选择一个合适的原型版本。
在完成这些设置后,点击create,我们就创建好了一个MAVEN项目

截图中的代码:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>maven-01</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><name>maven-01</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies>
</project>
上述代码是一个 Maven 项目的 POM (Project Object Model) 文件,它是 Maven 项目的核心配置文件,用于描述项目的元数据和构建配置。下面是对每个元素的解释:
project:根元素,指定了 POM 文件的 XML 命名空间和架构位置。modelVersion:指定 POM 模型的版本,在此例中为 4.0.0。groupId:定义项目的 Group Id,用于唯一标识项目的组织或团队。在此例中,Group Id 为 “org.example”。artifactId:定义项目的 Artifact Id,用于唯一标识项目的名称。在此例中,Artifact Id 为 “maven-01”。version:指定项目的版本号,在此例中为 “1.0-SNAPSHOT”。packaging:指定项目的打包方式,例如 jar、war 等。在此例中,打包方式为 jar。name:指定项目的名称,在此例中为 “maven-01”。url:指定项目的 URL,在此例中为 “http://maven.apache.org”。properties:定义项目的属性,可以在项目的其他地方引用。在此例中,指定了项目的源代码编码为 UTF-8。dependencies:定义项目的依赖关系。在此例中,定义了一个 JUnit 的测试依赖,版本号为 3.8.1,作用域为测试。
这个示例中的 POM 文件描述了一个简单的 Maven 项目,其中包括了基本的项目信息、构建设置和一个测试依赖。通过这些配置,Maven 可以根据 POM 文件来构建项目并管理项目的依赖关系。根据实际需求,你可以根据这个示例修改或添加其他的配置和依赖项。
但是需要注意的是:我们在2022的版本以上在空项目中创建maven项目的话,会出现发行版本无效的bug,而解决这个错误也是比较麻烦,因此我们可以直接在创建项目的时候就使用maven模块
2.在开始界面就直接利用maven模块进行创建:

这样就可以直接得到一个maven工程,并且运行也不会报错:

我们利用所创建出来的maven工程来创建一个简单的hello world

MAVEN中的坐标:
在 Maven 中,坐标(Coordinate)用于唯一标识一个项目或模块。它由三个元素组成:groupId、artifactId 和 version。这些元素结合在一起,形成了一个在 Maven 仓库中唯一标识的标识符。
下面对 Maven 坐标的每个元素进行详细介绍:
-
groupId(组织ID):
- groupId 标识项目所属的组织或团队。
- 建议使用逆序的域名(反向的 DNS 域名)作为 groupId 的值,这样可以确保唯一性。
- 例如,org.example 表示该项目属于 example.org 组织。
-
artifactId(构件ID):
- artifactId 是项目或模块的名称。
- artifactId 应该是唯一的,以便能够区分不同的项目或模块。
- 例如,maven-01 可以是一个表示 Maven 项目的 artifactId。
-
version(版本号):
- version 是项目或模块的版本号。
- 版本号用于区分不同的项目或模块的不同版本。
- 通常使用数字加点的形式来表示版本号,例如 1.0、2.5.3 等。
- 还可以使用特殊标识符,例如 SNAPSHOT(表示快照版本)或 RELEASE(表示正式发布版本)。
- 例如,1.0-SNAPSHOT 表示一个还在开发中的快照版本,1.0 表示一个正式发布的版本。
通过组合 groupId、artifactId 和 version 这三个元素,可以唯一地标识和引用 Maven 仓库中的项目或模块。在 Maven 的依赖管理中,通过指定坐标来引入所需的外部依赖。
例如,在一个 Maven 项目的 pom.xml 文件中,可以使用以下方式指定依赖:
<dependencies><dependency><groupId>org.example</groupId><artifactId>my-library</artifactId><version>1.0</version></dependency>
</dependencies>
这样,Maven 就能根据坐标解析并下载项目依赖。坐标的唯一性保证了项目的依赖管理的准确性和一致性,使得构建过程更加可靠和可重复。
总结:
在 IntelliJ IDEA 中配置 Maven 和创建 Maven 项目是非常重要的,因为 Maven 是Java开发中常用的构建工具和依赖管理工具。本文总结了在 IntelliJ IDEA 中配置 Maven 的步骤和创建 Maven 项目的过程。
首先,我们学习了如何配置 IntelliJ IDEA 来使用正确的 Maven 发行版本,并确保项目的 JDK 设置与所需的发行版本相匹配。我们还了解了如何在项目的编译选项中设置目标字节码版本。
其次,我们介绍了如何在 IntelliJ IDEA 中创建一个新的 Maven 项目。通过创建一个 Maven 项目,我们可以利用 Maven 的依赖管理功能来管理项目的外部依赖。我们讨论了如何设置项目的 groupId、artifactId 和版本号等坐标信息,以及如何在 pom.xml 文件中添加和管理依赖。
最后,我们强调了 Maven 坐标的重要性,它们在 Maven 项目中起着唯一标识和引用模块的作用。正确配置 Maven 和使用正确的坐标信息对于构建和管理 Java 项目至关重要。
配置 Maven 和创建 Maven 项目是提高开发效率和项目管理的关键步骤。掌握这些技巧和步骤,将使您能够更好地利用 Maven 的强大功能来管理和构建 Java 项目。
如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!

相关文章:
MAVEN利器:一文带你了解IDEA中如何使用Maven
前言: 强大的构建工具——Maven。作为Java生态系统中的重要组成部分,Maven为开发人员提供了一种简单而高效的方式来构建、管理和发布Java项目。无论是小型项目还是大型企业级应用,Maven都能帮助开发人员轻松处理依赖管理、编译、测试和部署等…...
R语言15-R语言中的列的分裂与合并长宽数据转换
列的分裂与合并 列的分裂: 使用 separate() 函数将一个包含多个值的列分裂成多个列。 install.packages("tidyr") # 安装 tidyr 包(如果尚未安装) library(tidyr)data <- data %>%separate(col_name, into c("part1…...
使用Pytorch和OpenCV实现视频人脸替换
“DeepFaceLab”项目已经发布了很长时间了,作为研究的目的,本文将介绍他的原理,并使用Pytorch和OpenCV创建一个简化版本。 本文将分成3个部分,第一部分从两个视频中提取人脸并构建标准人脸数据集。第二部分使用数据集与神经网络一…...
【力扣】202. 快乐数 <哈希>
【力扣】202. 快乐数 编写一个算法来判断一个数 n 是不是快乐数。 【快乐数】 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。 如果这个过程…...
深度学习4. 循环神经网络 – Recurrent Neural Network | RNN
目录 循环神经网络 – Recurrent Neural Network | RNN 为什么需要 RNN ?独特价值是什么? RNN 的基本原理 RNN 的优化算法 RNN 到 LSTM – 长短期记忆网络 从 LSTM 到 GRU RNN 的应用和使用场景 总结 百度百科维基百科 循环神经网络 – Recurre…...
自动驾驶感知传感器标定安装说明
1. 概述 本标定程序为整合现开发的高速车所有标定模块,可实现相机内参标定和激光、相机、前向毫米波 至车辆后轴中心标定,标定参数串联传递并提供可视化工具验证各个模块标定精度。整体标定流程如下,标定顺序为下图前标0-->1-->2-->3,相同编号标定顺序没有强制要求…...
基于JAYA算法优化的BP神经网络(预测应用) - 附代码
基于JAYA算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于JAYA算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.JAYA优化BP神经网络2.1 BP神经网络参数设置2.2 JAYA算法应用 4.测试结果:5.Matlab代码 摘要…...
基于单片机串口控制直流电机调速
一、系统方案 (2)本设计采用STC89C5单片机作为主控器,串口控制直流电机调速,串口助手发送1-8,改变电机速度,数码管显示对应速度。 二、硬件设计 原理图如下: 三、单片机软件设计 1、首先是系统初始化 TMOD0x21;//定…...
Linux(基础篇一)
Linux基础篇 Linux基础篇一1. Linux文件系统与目录结构1.1 Linux文件系统1.2 Linux目录结构 2. VI/VIM编辑器2.1 vi/vim是什么2.2 模式间的转换2.3 一般模式2.4 插入模式2.4.1 进入编辑模式2.4.2 退出编辑模式 2.5 命令模式 3. 网络配置3.1 网络连接模式3.2 修改静态ip3.3 配置…...
小程序如何手动变更会员卡等级
有时候需要商家手动变更会员卡等级,以让会员获取更多的福利和特权。下面就介绍一些小程序手动变更会员卡等级的常见方法和策略。 1. 找到指定的会员卡。在管理员后台->会员管理处,找到需要更改等级的会员卡。也支持对会员卡按卡号、手机号和等级进行…...
Tensorflow2.0搭建网络八股
目录 引言:keras与Tensorflow2.0结合 一、六步法 1.导入头文件:import 2.收集处理训练集和测试集:train, test: 3.描述各层网model tf.keras.models.Sequential: 4.描述使用什么优化反向传播:model.c…...
【安装GPU版本pytorch,torch.cuda.is_available()仍然返回False问题】
TOC 第一步 检查cuda是否安装,CUDA环境变量是否正确设置,比如linux需要设置在PATH,window下环境变量编辑看看,是否有CUDA 第二步,核查python中torch版本 首先查看你环境里的pytorch是否是cuda版本,我这…...
Git 版本控制系统
git相关代码 0、清屏幕:clear 1、查看版本号 git -v2、暂存、更改、提交 3、当前项目下暂存区中有哪些文件 git ls-files4、查看文件状态 git status -s5、暂时存储,可以临时恢复代码内容 git restore 目标文件 //(注意:完全…...
70吨服务区生活污水处理设备加工厂家电话
70吨服务区生活污水处理设备加工厂家电话 设备简单说明 调节池 由于来水标高低,无法直接流入地埋式生活污水处理设备,在生化一体化设备前增加集水调节池一座。集水提升池内装有两台潜水提升泵,将集水提升池内的废水提升至一体化污水处理设备。…...
十一、hadoop应用
1.上传数据集 27.19.74.143,2015/3/30 17:38,/static/image/common/faq.gif 110.52.250.126,2015/3/30 17:38,/data/cache/style_1_widthauto.css?y7a 27.19.74.143,2015/3/30 17:38,/static/image/common/hot_1.gif 27.19.74.143,2015/3/30 17:38,/static/image/common/hot_2…...
Pytorch06-复杂模型构建
https://github.com/ExpressGit/Pytorch_Study_Demo 1、PyTorch 复杂模型构建 1、模型截图2、模型部件实现3、模型组装 2、模型定义 2.1、Sequential 1、当模型的前向计算为简单串联各个层的计算时, Sequential 类可以通过更加简单的方式定义模型。2、可以接收…...
iPhone 15 Pro与谷歌Pixel 7 Pro:哪款相机手机更好?
考虑到苹果最近将更多高级功能转移到iPhone Pro设备上的趋势,今年秋天iPhone 15 Pro与谷歌Pixel 7 Pro的对决将是一场特别有趣的对决。去年发布的iPhone 14 Pro确实发生了这种情况,有传言称iPhone 15 Pro再次受到了苹果的大部分关注。 预计iPhone 15系列会有一些变化,例如切…...
react通过ref获取函数子组件实例方法
在react16之后带来了hooks之后,确实方便了很多组件开发,也加快了函数式编程的速度,但是当你通过useRef获取子组件的时候,又恰好子组件是一个函数组件,那么将会报一个错误:报这个错误的主要原因是函数组件没…...
MathType7MAC中文版数学公式编辑器下载安装教程
如今许多之前需要手写的内容都可以在计算机中完成了。以前我们可以通过word输入一些简单的数学公式,但现在通过数学公式编辑器便可以完成几乎所有数学公式的写作。许多简单的数学公式,我们可以使用输入法一个个找到特殊符号并输入,但是对于高…...
python项目实战
文章 项目1:外星人入侵项目2:数据可视化2.a matplotlib2.b csv文件格式2.c json文件格式2.d 使用Web API2.e 使用Pygal可视化仓库 项目3:Web应用程序3.1 Django入门3.1.1 建立项目3.1.2 创建应用程序3.1.3 创建网页 3.2 用户账户3.2.1 让用户…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
