IntelliJ IDEA快速入门 | 第三十四篇:IntelliJ IDEA中Maven的配置与使用
发布日期:2021-06-30 17:57:07 浏览次数:2 分类:技术文章

本文共 4838 字,大约阅读时间需要 16 分钟。

在这篇文章中,咱们来说一下在IntelliJ IDEA当中是如何来配置Maven的。

简单介绍一下Maven

Maven是Apache提供的一款自动化构建工具,用于自动化构建和依赖管理。开发团队基本不用花多少时间就能自动完成工程的基础构建配置,因为Maven使用了一个标准的目录结构和一个默认的构建生命周期。现在你知道这点了吧,就是Maven会使得开发者的工作变得更简单。

这里,我来稍微讲讲自动化构建工具的发展历史,最初开发者用的是Make,然后用的是Ant,接下来就出现了Maven,然而在Maven出现之后,又出现了一个Gradle,虽然市面上有这么多的自动化构建工具,但是现在主流还是用Maven多一点。不过,大家现在也看到了,不管是移动端开发也好,还是后端开发也好,Gradle现在使用的也比较多了,它用起来也很便捷。你逛一下GitHub就知道了,通常在GitHub上既会提供Maven这样的依赖管理方式,也会提供Gradle这样的依赖管理方式。目前的话,应该说还是Maven使用的比较多,所以,这里我们主要是来讲一讲如何在IntelliJ IDEA当中去配置Maven。

好,既然Maven是一个自动化构建工具,那么我们就应该清楚对于一个项目来讲,它的构建的基本环节涉及到清理、编译、测试、报告、打包和部署这样几个过程,如下图所示。

在这里插入图片描述

下面,我稍微对这几个过程做一下说明。

  • 清理:表示在编译代码前将之前生成的内容删除
  • 编译:将源代码编译为字节码
  • 测试:运行单元测试用例程序
  • 报告:测试程序的结果
  • 打包:将Java项目打成jar包,或者将Web项目打成war包
  • 安装:将jar包或war包生成到Maven仓库中
  • 部署:将jar包或war包从Maven仓库中部署到Web服务器上运行

如果完全是手动进行以上过程的话,那么显然是比较费时费力的,因此,在这里,我们就需要使用Maven来实现项目的自动化构建了。而且,同时的话呢,Maven还可以进行依赖的管理,方便在不同的模块之间进行依赖的一个调用。

关于Maven的具体使用,不是咱们这里讲解的重点,如果你要是不清楚的话,那么请自行学习一下这个Maven,学习的时候,可以参考本人写的「」这个系列专栏哟😜,有一点王婆卖瓜,自卖自夸的意思。

IntelliJ IDEA中Maven的配置

这里,咱们重点来说一下,Maven在IntelliJ IDEA当中的一个配置。

实际上,在IntelliJ IDEA当中已经集成Maven了,如下图所示,但是,咱们不建议使用IntelliJ IDEA给我们提供的现成的Maven,大家最好还是使用自己的,包括用咱们自己的一个settings.xml文件。

在这里插入图片描述

关于Maven的下载、解压以及环境变量的配置,我在这里就不再赘述了,因为不是咱们这里讲解的重点。如下图所示,可以看到我将Maven解压到了如下目录中。

在这里插入图片描述

好了,接下来,咱们来看一下在IntelliJ IDEA当中如何去配置Maven。

首先,进入IntelliJ IDEA的设置界面中,并依次展开Build, Execution, DeploymentBuild Tools这两项,这时你会看到Maven,选中它之后,可以看到如下图所示的界面,在该界面中,我们就可以来配置Maven了。

在这里插入图片描述

在以上界面中,我们主要来看最后面的三个选项。第一个选项叫Maven home path,从这里我们也能看到IntelliJ IDEA已经为我们集成好了一个Maven,不过其版本有点新,是3.6.3这个版本,而我本人使用的还是3.6.2这个版本。上面其实也说到了,我们不建议使用IntelliJ IDEA自己提供的Maven,那我们就只好使用咱们自己的了,点击该项最后面的...按钮,然后在弹出的对话框中找到咱们自己的Maven的解压路径即可,如下图所示,找到之后点击OK按钮。

在这里插入图片描述

第二个选项叫User settings file,在这儿我们可以根据自己的需要来设置我们自己的settings.xml文件,不妨参照下图来进行设置。

在这里插入图片描述

可以看到,对于我本人来说,settings.xml文件是放在了我本机的D:\javaee_develop\maven\apache-maven-3.6.2\conf目录下。对于Maven来讲,settings.xml文件应该说是它里面非常重要的一个配置文件,因为这个配置文件里面记录了很多的重要信息。举个例子,比如说它记录了我们本地仓库的一个地址,如下图所示。

在这里插入图片描述

也就是说,如果我们下载第三方的一些jar包(或者插件)的话,那么都会存放在本地仓库中。还比如说,我们还会在该文件中配置一下mirrors,如下图所示。

在这里插入图片描述

可以看到,我先是配置了一个阿里云的镜像,再是配置了一个中央仓库的镜像,为什么要这样进行配置呢?我们平常去添加依赖的话,一般都是到国外的中央仓库去下载相应的一些依赖文件,有的时候,下载是非常不便捷的,要不就是网速比较慢,要不就是下载请求直接就被拦截了,此时,你要么配置自己的VPN,要么转换成国内的仓库,这就是我以上mirrors配置的原因。

如果你像我这样配置好了之后,那么添加依赖时,Maven就会优先从上往下选,第一个仓库(阿里云的仓库)要是宕机的话,就会从第二个仓库(即中央仓库)中去下载相应的一些依赖文件。

第三个选项叫Local repository,即设置本地仓库。其实,第二个选项设置好之后,第三个选项也就自动设置好了,如下图所示。

在这里插入图片描述

接着,在IntelliJ IDEA的设置界面的左侧展开Maven这一项,这时你会看到Importing,选中它之后,可以看到如下图所示的界面。

在这里插入图片描述

以上界面中也有几项需要说明一下。第一项,即Detect compiler automatically,这应该是在说IntelliJ IDEA会实时监控项目的pom.xml文件,以便进行项目变动设置。这说的是啥意思啊?就是说如果我们创建了一个Maven工程的话,很显然该工程里面是会有一个pom.xml文件的,我们都是在该文件里面添加依赖的,还有印象吗?那么当pom.xml文件修改之后,是否时时的进行一个下载。从以上界面中,可以看到该项是默认勾选上的,如果你要是没有勾选上,建议你勾选上。这样的话,一旦修改了pom.xml文件,增加了新的依赖,那么就能给我们时时进行下载了。

再来看第二项,即Automatically download,这是说在Maven导入依赖包的时候是否自动下载源码和说明文档,默认是没有勾选的,当然了,也不建议大家勾选,原因是这样可以加快项目从外网导入依赖包的速度,如果大家真的需要某一个依赖包的源码和文档,那么你到时候再针对该依赖包进行联网下载即可。如果你要是都勾上了后面几项,那么这势必会影响依赖添加(或者下载)的一个速度。除此之外,我还要说明的一点是,IntelliJ IDEA支持直接从公网下载源码和文档。

最后看第三项,即VM options for importer,这是告诉我们可以设置导入的VM(虚拟机)参数。默认这项是没有设置的,不过在这儿我们可以设置成-Xmx768m玩玩,如果项目真的导入太慢了,那么我们可以再增大此参数哟😘

在这里插入图片描述

设置好之后,点击OK按钮即可。至此,就完成了IntelliJ IDEA中Maven的配置。

创建对应的Module

首先,我们在当前工程下右键去新建一个Module,如下图所示。

在这里插入图片描述

新建Module的话,我们就以Spring Boot工程的模板(即Spring Initializr)为例来进行演示了,如下图所示。

在这里插入图片描述

点击以上Next按钮,这时候应该是在加载一个东西,所以,在这一过程中是需要大家联网的,可能因为网络情况的不同,所加载的时间是不一样的。不过,我这儿很快就出来了如下对话框。

在这里插入图片描述

以上对话框中有几项需要我们填写,下面我分别来说明一下。

  • Group:这里需要填写组织或者公司的域名,不过是倒序的,例如com.meimeixia.maven
  • Artifact:这里填写的是项目模块名称,例如mavendemo
  • Version:默认Maven生成版本,也即Maven默认的一个版本命名方式,默认是0.0.1-SNAPSHOT,我们可以不用做修改

大家可以看一看我填写的结果,如下图所示,你要是不会写的话,不妨参照下图来写。

在这里插入图片描述

点击以上Next按钮,这时会出现如下对话框,这里是来询问我们是不是需要下载相关的一些组件信息。不过,大家可以先不进行选择,等你真正在开发当中需要哪些了,回过来再进行勾选也是可以的。

在这里插入图片描述

在该对话框中,不知你看到没有我们现在使用的Spring Boot是2.4.4这个版本的,当然了,你还可以自行选择其他版本。

继续点击以上Next按钮,这时会出现如下对话框,在该对话框中,我们就不修改Module的名字和位置了,一切默认即可。

在这里插入图片描述

最后,点击以上Finish按钮,你会发现此时会去下载当前Spring Boot工程的模板(即Spring Initializr),这稍微需要一点时间,所以大家要保证在这个过程中你的环境是一个联网的状态,根据大家网络情况的不同,它这个下载的时间有长有短。

在这里,我想提醒大家的一点是,如果IntelliJ IDEA是在工作的过程当中,不管是上传,还是下载,还是正在编译我们当前的项目,那么大家尽可能的不要在IntelliJ IDEA工作的过程当中,去做一些额外的操作,因为你的这个额外的操作可能会导致IntelliJ IDEA出现问题。比如有可能你的这个额外操作会导致出现这样一个问题,就是你新修改了代码,可就算代码做了修改,IntelliJ IDEA也不会真正去编译。

Module创建完成之后,就差不多是下面这个样子了,在IntelliJ IDEA右边的Maven视图中我们能看到创建的Module哟😀,如果没有的话,请点击Maven视图中的刷新小图标!

在这里插入图片描述

而且,在当前工程下,我们也能看到新创建的Module,即mavendemo,展开它下面的src目录,发现还有两个目录,一个是main目录,一个是test目录,然后依次再展开这两目录,你会看到如下图所示的结果。

在这里插入图片描述

这里,我们不妨来复习一下Maven工程的标准目录结构。

  • main
    • java:该目录存放的是项目的Java源文件
    • resources:该目录存放的是项目的资源文件
  • test
    • java:该目录存放的是所有测试的Java源文件,例如JUnit单元测试类

我们还是来看一下右侧Maven视图中的Module,展开它之后,你会看到一个Lifecycle目录,在该目录下就有Maven工程所对应的生命周期,如下图所示,其中常用的也就是cleancompilepackage以及install等操作。

在这里插入图片描述

关于这几个比较重要的操作,我就不在这里详细地赘述了,我只是来简单地演示一下install操作。如果我们想要将当前的这个Module打成一个jar包,然后供其他的模块引用,那么该怎么办呢?很简单,我们只需要将当前的这个Module进行一个install操作就行,即双击install生命周期,这时IntelliJ IDEA控制台应该会出现安装成功的消息。

在这里插入图片描述

成功安装到本地仓库中之后,我们不妨去本地仓库中查找一下所打成的jar包,你要是找不到该jar包的位置的话,不妨从IntelliJ IDEA控制台打印出的消息中找一找,相信你很快就能找到了。

你找到了这个jar包了没啊,反正我是找到了,如下图所示,大家现在就可以把它作为一个依赖了,而且在其他的模块或者项目当中就可以引用它了哟😘

在这里插入图片描述

至此,在IntelliJ IDEA中Maven的配置与使用,我就彻底说清楚了,大家如果还是有不明白的地方,可以在下面留言与我进行讨论哟~

转载地址:https://liayun.blog.csdn.net/article/details/115646101 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:IntelliJ IDEA快速入门 | 第三十五篇:你知道如何在IntelliJ IDEA中去生成JavaDoc吗?
下一篇:IntelliJ IDEA快速入门 | 第三十一篇:在IntelliJ IDEA 2020.3.3中添加Tomcat镜像并部署Web工程

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月20日 02时56分59秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

Boundary loss 损失函数 2019-04-30
神经网络调参实战(一)—— 训练更多次数 & tensorboard & finetune 2019-04-30
tensorflow使用tensorboard进行可视化 2019-04-30
神经网络调参实战(二)—— activation & initializer & optimizer 2019-04-30
凸优化 convex optimization 2019-04-30
数据库索引 & 为什么要对数据库建立索引 / 数据库建立索引为什么会加快查询速度 2019-04-30
IEEE与APA引用格式 2019-04-30
research gap 2019-04-30
pytorch训练cifar10数据集查看各个种类图片的准确率 2019-04-30
Python鼠标点击图片,获取点击点的像素坐标 2019-04-30
路径规划(一) —— 环境描述(Grid Map & Feature Map) & 全局路径规划(最优路径规划(Dijkstra&A*star) & 概率路径规划(PRM&RRT)) 2019-04-30
神经网络调参实战(四)—— 加深网络层次 & 批归一化 batch normalization 2019-04-30
数据挖掘与数据分析(三)—— 探索性数据分析EDA(多因子与复合分析) & 可视化(1)—— 假设检验(μ&卡方检验&方差检验(F检验))&相关系数(皮尔逊&斯皮尔曼) 2019-04-30
RRT算法(快速拓展随机树)的Python实现 2019-04-30
路径规划(二) —— 轨迹优化(样条法) & 局部规划(人工势能场法) & 智能路径规划(生物启发(蚁群&RVO) & 强化学习) 2019-04-30
D*算法 2019-04-30
强化学习(四) —— Actor-Critic演员评论家 & code 2019-04-30
RESTful API 2019-04-30
优化算法(四)——粒子群优化算法(PSO) 2019-04-30
数据挖掘与数据分析(三)—— 探索性数据分析EDA(多因子与复合分析) & 可视化(2)——回归分析(最小二乘法&决定系数&残差不相关)&主成分分析&奇异值分解 2019-04-30