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

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,之后进行如下设置:

  1. “Archetype” (原型) 指的是一种项目模板或者蓝图,它定义了项目的结构和相关的配置。Maven 提供了一些官方的原型供开发者使用,比如 “maven-archetype-quickstart”,它是一个用于快速创建简单 Java 项目的原型。原型提供了一个起点,帮助你快速搭建项目的基本结构,省去了手动配置的麻烦。
  2. 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)用于唯一标识一个项目或模块。它由三个元素组成:groupIdartifactId version。这些元素结合在一起,形成了一个在 Maven 仓库中唯一标识的标识符。

下面对 Maven 坐标的每个元素进行详细介绍:

  1. groupId(组织ID):

    • groupId 标识项目所属的组织或团队。
    • 建议使用逆序的域名(反向的 DNS 域名)作为 groupId 的值,这样可以确保唯一性。
    • 例如,org.example 表示该项目属于 example.org 组织。
  2. artifactId(构件ID):

    • artifactId 是项目或模块的名称。
    • artifactId 应该是唯一的,以便能够区分不同的项目或模块。
    • 例如,maven-01 可以是一个表示 Maven 项目的 artifactId。
  3. 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

前言&#xff1a; 强大的构建工具——Maven。作为Java生态系统中的重要组成部分&#xff0c;Maven为开发人员提供了一种简单而高效的方式来构建、管理和发布Java项目。无论是小型项目还是大型企业级应用&#xff0c;Maven都能帮助开发人员轻松处理依赖管理、编译、测试和部署等…...

R语言15-R语言中的列的分裂与合并长宽数据转换

列的分裂与合并 列的分裂&#xff1a; 使用 separate() 函数将一个包含多个值的列分裂成多个列。 install.packages("tidyr") # 安装 tidyr 包&#xff08;如果尚未安装&#xff09; library(tidyr)data <- data %>%separate(col_name, into c("part1…...

使用Pytorch和OpenCV实现视频人脸替换

“DeepFaceLab”项目已经发布了很长时间了&#xff0c;作为研究的目的&#xff0c;本文将介绍他的原理&#xff0c;并使用Pytorch和OpenCV创建一个简化版本。 本文将分成3个部分&#xff0c;第一部分从两个视频中提取人脸并构建标准人脸数据集。第二部分使用数据集与神经网络一…...

【力扣】202. 快乐数 <哈希>

【力扣】202. 快乐数 编写一个算法来判断一个数 n 是不是快乐数。 【快乐数】 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1&#xff0c;也可能是 无限循环 但始终变不到 1。 如果这个过程…...

深度学习4. 循环神经网络 – Recurrent Neural Network | RNN

目录 循环神经网络 – Recurrent Neural Network | RNN 为什么需要 RNN &#xff1f;独特价值是什么&#xff1f; RNN 的基本原理 RNN 的优化算法 RNN 到 LSTM – 长短期记忆网络 从 LSTM 到 GRU RNN 的应用和使用场景 总结 百度百科维基百科 循环神经网络 – Recurre…...

自动驾驶感知传感器标定安装说明

1. 概述 本标定程序为整合现开发的高速车所有标定模块,可实现相机内参标定和激光、相机、前向毫米波 至车辆后轴中心标定,标定参数串联传递并提供可视化工具验证各个模块标定精度。整体标定流程如下,标定顺序为下图前标0-->1-->2-->3,相同编号标定顺序没有强制要求…...

基于JAYA算法优化的BP神经网络(预测应用) - 附代码

基于JAYA算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于JAYA算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.JAYA优化BP神经网络2.1 BP神经网络参数设置2.2 JAYA算法应用 4.测试结果&#xff1a;5.Matlab代码 摘要…...

基于单片机串口控制直流电机调速

一、系统方案 (2)本设计采用STC89C5单片机作为主控器&#xff0c;串口控制直流电机调速&#xff0c;串口助手发送1-8&#xff0c;改变电机速度&#xff0c;数码管显示对应速度。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 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 配置…...

小程序如何手动变更会员卡等级

有时候需要商家手动变更会员卡等级&#xff0c;以让会员获取更多的福利和特权。下面就介绍一些小程序手动变更会员卡等级的常见方法和策略。 1. 找到指定的会员卡。在管理员后台->会员管理处&#xff0c;找到需要更改等级的会员卡。也支持对会员卡按卡号、手机号和等级进行…...

Tensorflow2.0搭建网络八股

目录 引言&#xff1a;keras与Tensorflow2.0结合 一、六步法 1.导入头文件&#xff1a;import 2.收集处理训练集和测试集&#xff1a;train, test&#xff1a; 3.描述各层网model tf.keras.models.Sequential&#xff1a; 4.描述使用什么优化反向传播&#xff1a;model.c…...

【安装GPU版本pytorch,torch.cuda.is_available()仍然返回False问题】

TOC 第一步 检查cuda是否安装&#xff0c;CUDA环境变量是否正确设置&#xff0c;比如linux需要设置在PATH&#xff0c;window下环境变量编辑看看&#xff0c;是否有CUDA 第二步&#xff0c;核查python中torch版本 首先查看你环境里的pytorch是否是cuda版本&#xff0c;我这…...

Git 版本控制系统

git相关代码 0、清屏幕&#xff1a;clear 1、查看版本号 git -v2、暂存、更改、提交 3、当前项目下暂存区中有哪些文件 git ls-files4、查看文件状态 git status -s5、暂时存储&#xff0c;可以临时恢复代码内容 git restore 目标文件 //&#xff08;注意&#xff1a;完全…...

70吨服务区生活污水处理设备加工厂家电话

70吨服务区生活污水处理设备加工厂家电话 设备简单说明 调节池 由于来水标高低&#xff0c;无法直接流入地埋式生活污水处理设备&#xff0c;在生化一体化设备前增加集水调节池一座。集水提升池内装有两台潜水提升泵&#xff0c;将集水提升池内的废水提升至一体化污水处理设备。…...

十一、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、当模型的前向计算为简单串联各个层的计算时&#xff0c; 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之后&#xff0c;确实方便了很多组件开发&#xff0c;也加快了函数式编程的速度&#xff0c;但是当你通过useRef获取子组件的时候&#xff0c;又恰好子组件是一个函数组件&#xff0c;那么将会报一个错误&#xff1a;报这个错误的主要原因是函数组件没…...

MathType7MAC中文版数学公式编辑器下载安装教程

如今许多之前需要手写的内容都可以在计算机中完成了。以前我们可以通过word输入一些简单的数学公式&#xff0c;但现在通过数学公式编辑器便可以完成几乎所有数学公式的写作。许多简单的数学公式&#xff0c;我们可以使用输入法一个个找到特殊符号并输入&#xff0c;但是对于高…...

python项目实战

文章 项目1&#xff1a;外星人入侵项目2&#xff1a;数据可视化2.a matplotlib2.b csv文件格式2.c json文件格式2.d 使用Web API2.e 使用Pygal可视化仓库 项目3&#xff1a;Web应用程序3.1 Django入门3.1.1 建立项目3.1.2 创建应用程序3.1.3 创建网页 3.2 用户账户3.2.1 让用户…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...

深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向

在人工智能技术呈指数级发展的当下&#xff0c;大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性&#xff0c;吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型&#xff0c;成为释放其巨大潜力的关键所在&…...