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

如何在IDEA中使用Maven构建Java项目?Maven的使用详细解读

文章目录

  • 1. 前言
  • 2. IDEA 中配置 Maven 环境
  • 3. Maven 的坐标问题
  • 4. IDEA 中创建 Maven 项目
  • 5. IDEA 中导入 Maven 项目
  • 6. 安装插件
  • 7. 依赖管理
  • 8. 依赖范围
  • 6. 总结
  • Java编程基础教程系列

1. 前言

前面在如何使用 Maven 构建 Java 项目一文中,我们一直在命令行中执行构建项目生命周期的命令,例如执行 mvn compile 命令进行项目的编译。

在 Java 项目的开发中,我们肯定会使用大型的 IDE,并且在这些 IDE 中使用Maven 管理和构建项目,这里使用 idea 为例,讲解如何在集成开发环境中使用 Maven 构建 Java 项目。

2. IDEA 中配置 Maven 环境

要在 idea 中使用 Maven 构建 Java 项目,首先要在 idea 中配置 Maven 环境。

在 idea 中点击左上角 File / Settings :

image-20230126143254468

在设置的搜索框搜索 Maven:

image-20230126143358521

主要配置以下三项,分别是本地 Maven 安装路径,Maven 文件目录下的conf / settings.xml 文件以及之前配置的本地仓库路径。

image-20230126143417033

配置完成后一定点击 Apply,再点 OK,小编在初学时这里曾遇到过很多的问题,总结来说还是要多尝试,遇到解决不了的问题一定要及时上网搜索解决哦。

3. Maven 的坐标问题

在创建 Maven 项目之前,一定要了解 Maven 的坐标,Maven 使用标准坐标引入项目中依赖的第三方资源。下面我们先了解 Maven 的坐标。

什么是坐标?

Maven 使用坐标做为资源的唯一标识,在配置文件中使用坐标引入资源。解决了之前下载 jar 包,导入 jar 包等资源操作繁琐的问题。

Maven的坐标是怎么组成的?

  • groupId :当前 Maven 项目隶属的组织,通常使用域名反写,例如 com.baidu
  • arifactId :当前 Maven 项目的名称,通常使用模块名称
  • version :当前 Maven 项目的版本号

当然后面还会往坐标中添加<scope>标签用来指定依赖范围,例如:

image-20230126144932337

4. IDEA 中创建 Maven 项目

使用 idea 创建一个 Maven 项目,可以直接创建一个项目,也可以先创建一个空项目,然后创建一个 Maven 模块,这里推荐使用第二种方式。

首先创建一个空项目,并指定项目存放路径和项目名称。

image-20230126145307994

在项目中点击左上角 File / Project Structure ,创建新模块,选择 Maven 模板,此时指定模块名称,存放路径,本地JDK,在 ArcheType 中选择 quickstar , 如图:

image-20230126145539230

选择完模块的信息以后,下拉找到 Advanced Settings ,这里设置当前 Maven 项目的坐标信息,如图:

image-20230126145832013

点击 create 开始创建,这里的过程可能比较慢,甚至比你想象的更慢,安心等待,创建成功以后,会自动生成一个 Maven 项目的模板,此时可能缺少某些文件目录,按照需求补齐。例如在源代码文件目录和测试代码文件目录都没有resources 配置文件目录,可手动添加,如图:

5. IDEA 中导入 Maven 项目

打开 idea 右侧的 Maven 面板,找到对应的项目文件目录,双击项目的 pom.xml 文件即可把该项目导入到 idea 中。

在这里插入图片描述
如果 idea 右侧没有Maven 面板,勾选 View / Appearance / Tool Window Bars 即可,小编使用的是企业版 idea,可能不同版本效果不同。

6. 安装插件

安装 Maven Helper 插件,可以帮助我们快速执行 Maven 构建项目生命周期的命令,例如 compile 编译。

点击 File / Settings / Plugins ,搜索 Maven Helper,如图:

image-20230126150927951

重启 idea ,此时我们便可以选中项目,右键执行相关的命令,如图:

image-20230126151358515

7. 依赖管理

Maven 使用标准坐标的方式引入项目中依赖的第三方资源,例如 jar 包,插件等,那么具体怎么操作呢?

使用坐标引入第三方依赖具体分为以下四步:

  1. 在 项目核心配置文件 pom.xml 中编写<dependencies>标签
  2. <dependencies>标签中使用<dependency>标签引入坐标
  3. 定义坐标信息:groupId,artifactId,version 等
  4. 刷新,使坐标信息生效

image-20230126152028284

我们还可以快捷添加坐标,在项目的 pom.xml 文件中按快捷键 Alt + insert ,选择 Add Dependency ,接下来搜索需要添加的坐标信息,双击添加并点击刷新按钮即可添加成功并生效。

image-20230126152419145

上面两种引入坐标的方式都需要手动刷新,你也可以选择坐标自动生效,点击 File / Settings/Build Tools ,选择 Any changes 。

image-20230126152703025

8. 依赖范围

我们可以通过<scope>标签来设置坐标的依赖范围,可以选择的范围有编译环境,测试环境和运行环境,坐标的默认依赖范围为 compile 值。

例如,给 junit 依赖设置为测试环境有效,其他环境不能使用,示例:

<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
</dependency>

<scope>标签的详细取值:

依赖范围编译测试运行
compileyyylogback
testyJunit
providedyyservlet-api
runtimeyyjdbc
systemyy存储在本地的jar包

6. 总结

初学者在这部分一定会遇到各种各样的问题,其中大部分都是由于版本问题造成的,例如 JDK 版本,idea 版本,Maven 版本等。建议多尝试几遍就能熟练,遇到问题一定要及时解决。

例如小编曾经在这部分就遇到各种当时水平难以处理的问题,项目中无法生成 src 源代码目录,idea 中报错不支持该版本,Maven 中报错不支持源选项等各种问题。不要放弃,多尝试问题总会解决。另外 Java 版本建议使用 JDK 1.8。

本节详细探讨了 Maven 构建 Java 项目的流程以及构建项目生命周期中使用的各种命令,我们下期见。


Java编程基础教程系列

JDBC快速入门,如何使用JDBC操作数据库?

如何使用JDBC操作数据库?JDBC API的使用详细解读

什么是数据库连接池?Druid(德鲁伊)连接池的使用详细解读

相关文章:

  • 【stl -- 常用算法】
  • python图像处理(图像缩放)
  • 电商项目之同一笔单多次收款成功
  • OpenFeign总结
  • 【Linux】基础IO --- 系统级文件接口、文件描述符表、文件控制块、fd分配规则、重定向…
  • 计算机网络01_---软考高级系统架构师010
  • 【Linux】冯诺依曼体系结构与操作系统概念理解
  • 【c语言进阶】枚举与联合体的基本知识大全
  • Python与Matlab混合编程案例
  • 排列的时候如何避免重复?
  • 芒果改进YOLOv5系列:原创结合Conv2Formers改进结构,Transformer 风格的卷积网络视觉基线模型,超越ConvNeXt结构
  • 利用Windows系统服务进行权限提升
  • WebAssembly编译之(2)-Ubuntu搭建WASM编译环境
  • InstanceNorm LayerNorm
  • yolo结构介绍
  • [PHP内核探索]PHP中的哈希表
  • [NodeJS] 关于Buffer
  • [译]前端离线指南(上)
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 「面试题」如何实现一个圣杯布局?
  • Centos6.8 使用rpm安装mysql5.7
  • es6要点
  • HTML-表单
  • JAVA并发编程--1.基础概念
  • JAVA之继承和多态
  • node学习系列之简单文件上传
  • PHP那些事儿
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • V4L2视频输入框架概述
  • vue-router的history模式发布配置
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 关于字符编码你应该知道的事情
  • 算法---两个栈实现一个队列
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  •  一套莫尔斯电报听写、翻译系统
  • 一天一个设计模式之JS实现——适配器模式
  • 数据可视化之下发图实践
  • #Z0458. 树的中心2
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • (06)Hive——正则表达式
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (二)springcloud实战之config配置中心
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (九)信息融合方式简介
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (四)Android布局类型(线性布局LinearLayout)
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .Net 6.0 处理跨域的方式