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 项目。

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/53663.shtml

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

相关文章

LAMP配置与应用

web资源类型&#xff1a; 静态资源&#xff1a;原始形式与响应内容一致&#xff0c;在客户端浏览器执行 动态资源&#xff1a;原始形式通常为程序文件&#xff0c;需要在服务器端执行之后&#xff0c;将执行结果返回给客户端 LAMP架构组成&#xff1a; L&#xff1a;linux …

同态比较算法

参考文献&#xff1a; [PS73] Paterson M S, Stockmeyer L J. On the number of nonscalar multiplications necessary to evaluate polynomials[J]. SIAM Journal on Computing, 1973, 2(1): 60-66.[IZ21] Iliashenko I, Zucca V. Faster homomorphic comparison operations …

最新PHP短网址生成系统/短链接生成系统/URL缩短器系统源码

全新PHP短网址系统URL缩短器平台&#xff0c;它使您可以轻松地缩短链接&#xff0c;根据受众群体的位置或平台来定位受众&#xff0c;并为缩短的链接提供分析见解。 系统使用了Laravel框架编写&#xff0c;前后台双语言使用&#xff0c;可以设置多域名&#xff0c;还可以开设套…

阻止 form 表单的默认提交

目录 表单提交的3种形式1&#xff0c;默认提交2&#xff0c;submit 提交3&#xff0c;button 提交 阻止提交方法1—— return false方法2 —— 阻止 submit 的默认行为方法3 —— 针对 button 的处理 表单提交的3种形式 MDN - form 提交表单时&#xff0c;未指定 form.action …

Linux操作系统--常用指令(用户管理操作类)

用户的管理需要使用超级管理员(root)来进行操作 (1).useradd添加新用户 功能:给当前的操作系统添加新的用户 语法: useradd 用户名 (2).passwd设置用户新密码 功能:给当前的用户设置密码 语法: passwd用户名 (3).i

js的使用之时间如何定义,窗口加载事件

1.时间如何定义 1.1 date的其他的属性 带出星期几的写法 var arr [星期日,星期一,星期二,星期三,星期四,星期五,星期六,星期天] var day date.getDay(); console.log(arr[day]); 1.2 日期的格式化 1.3 时分秒的写法 固定写法&#xff1a;如果想要写成00:00:00这种形式&am…

Flutter对象状态动态监听Watcher

场景&#xff1a;当一个表单需要在表单全部或者特定项赋值后才会让提交按钮可点击。 1.普通实现方式&#xff1a; ///场景&#xff1a;检查[test11][test12][test13]均不为空时做一些事情&#xff0c;例如提交按钮变成可点击String? test11;String? test12;int? test13;///当…

GNU-gcc编译选项-1

include目录 -I &#xff0c;比如: -I. -I ./Platform/include -I ./Platform/include/prototypes -I ./tpm/include -I ./tpm/include/prototypes -I ./Simulator/include -I ./Simulator/include/prototypes 编译选项 在GCC编译器中&#xff0c;-D是一个编译选项&…

Java“牵手”天猫商品评论API接口数据,天猫API接口申请指南

天猫商城是一个网上购物平台&#xff0c;售卖各类商品&#xff0c;包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取淘宝商品详情页面评价内容数据&#xff0c;您可以通过开放平台的接口或者直接访问淘宝商城的网页来获取商品详情信息内的评论数据。以下是两种常用方法…

高效实用小工具之Everything

一&#xff0c;简介 有时候我们电脑文件较多时&#xff0c;想快速找到某个文件不是一件容易的事情&#xff0c;实用windows自带的搜索太耗时&#xff0c;效率不高。今天推荐一个用来搜索电脑文件的小工具——Everything&#xff0c;本文将介绍如何安装以及使用everything&…

XXL-JOB

XXL-JOB是一个分布式的任务调度平台。 目的&#xff1a;为了自动完成特定的任务&#xff0c;在约定的特定时间去执行任务的过程。 原因&#xff1a;在spring中有scheduled&#xff0c;放到业务层代码上面也可以。但是其无法做到高可用、防止重复执行&#xff0c;单机处理极限…

uniapp使用uni.chooseLocation()打开地图选择位置

使用uni.chooseLocation()打开地址选择位置&#xff1a; 在Uniapp源码视图进行设置 添加这个属性&#xff1a;"requiredPrivateInfos":["chooseLocation"] ​ </template><view class"location_box"><view class"locatio…

4.12 TCP 连接,一端断电和进程崩溃有什么区别?

目录 TCP keepalive TCP 的保活机制 主机崩溃 进程崩溃 有数据传输的场景 客户端主机宕机&#xff0c;又迅速重启 客户端主机宕机&#xff0c;一直没有重启 TCP连接服务器宕机和进程退出情况总结 TCP keepalive TCP 的保活机制 TCP 保活机制需要通过 socket 接口设置 S…

Mybatis-动态sql和分页

目录 一.什么是Mybatis动态分页 二.mybatis中的动态SQL 在BookMaaper.xml中写sql BookMapper BookBiz接口类 BookBizImpl实现接口类 demo测试类 ​编辑 测试结果 三.mybatis中的模糊查询 mybatis中的#与$有是什么区别 在BookMapper.xml里面建立三个模糊查询 ​编辑 …

用Cmake build OpenCV后,在VS中查看OpenCV源码的方法(环境VS2022+openCV4.8.0) Part II

用Cmake build OpenCV后&#xff0c;在VS中查看OpenCV源码的方法 Part II 用Cmake build OpenCV后&#xff0c;在VS中查看OpenCV源码的方法&#xff08;环境VS2022openCV4.8.0&#xff09; Part I_松下J27的博客-CSDN博客 在上一篇文章中&#xff0c;我用cmake成功的生成了ope…

无涯教程-分类算法 - 逻辑回归

逻辑回归是一种监督学习分类算法&#xff0c;用于预测目标变量的概率&#xff0c;目标或因变量的性质是二分法&#xff0c;这意味着将只有两种可能的类。 简而言之&#xff0c;因变量本质上是二进制的&#xff0c;其数据编码为1(代表成功/是)或0(代表失败/否)。 在数学上&…

【网络】IP网络层和数据链路层

IP协议详解 1.概念 1.1 四层模型 应用层&#xff1a;解决如何传输数据&#xff08;依照什么格式/协议处理数据&#xff09;的问题传输层&#xff1a;解决可靠性问题网络层&#xff1a;数据往哪里传&#xff0c;怎么找到目标主机数据链路层&#xff08;物理层&#xff09;&…

ubuntu下自启动设置,为了开机自启动launch文件

1、书写sh脚本文件 每隔5秒钟启动一个launch文件&#xff0c;也可以直接在一个launch文件中启动多个&#xff0c;这里为了确保启动顺利&#xff0c;添加了一些延时 #! /bin/bash ### BEGIN INIT sleep 5 gnome-terminal -- bash -c "source /opt/ros/melodic/setup.bash…

java八股文面试[数据结构]——ConcurrentHashMap原理

HashMap不是线程安全&#xff1a; 在并发环境下&#xff0c;可能会形成环状链表&#xff08;扩容时可能造成&#xff0c;具体原因自行百度google或查看源码分析&#xff09;&#xff0c;导致get操作时&#xff0c;cpu空转&#xff0c;所以&#xff0c;在并发环境中使用HashMap是…

认识Mybatis的关联关系映射,灵活关联表对象之间的关系

目录 一、概述 ( 1 ) 介绍 ( 2 ) 关联关系映射 ( 3 ) 关联讲述 二、一对一关联映射 2.1 数据库创建 2.2 配置文件 2.3 代码生成 2.4 编写测试 三、一对多关联映射 四 、多对多关联映射 给我们带来的收获 一、概述 ( 1 ) 介绍 关联关系映射是指在数据库中&…