IDEA中使用Maven的正确姿势

Stars-one 2020年11月17日 321次浏览 本篇字数为3,623字

本文为作者原创,转载请注明出处,谢谢配合
作者:Stars-one
链接:https://stars-one.site/2020/11/17/use-maven-in-idea


最近换了新电脑,重新配置了一遍环境,打开Maven项目的时候也是遇到了不少的问题,此篇便是用来记录那些奇奇怪怪的问题

1.Maven的下载安装及配置

下载及设置环境变量

首先,为了顾及新入门Maven的同学们,简单的介绍一下Maven

Maven其实就是一个依赖的管理工具,我们可以通过其来依赖我们所需要的jar包

Maven下载直接去Maven官网下载即可,下载速度不算慢,但也不快...

maven其实是个压缩包,下载下来并解压,之后我们需要安装一下环境变量,其实如果你是在IDEA里面使用Maven,其实不配置也行,不配置就是不能输入mvn命令而已,配置的话这里就略过了,无非就是在path里新增maven的目录而已

设置镜像与jar包下载目录

重点来了,由于Maven默认的设置是从国外的中央仓库下载jar包,由于国内的关系,我们下载jar包的速度会变得龟慢...所以,我们要设置镜像,这里推荐阿里云的镜像源,下载非常的快速

根据阿里云的官方指南,我们修改位于maven目录的conf目录下的setting.xml文件即可

PS:这里不得不吐槽一下阿里云的官方指南了,按照普通开发者的使用,上面的配置是没有问题的,但是,我的项目中使用了位于jitpack仓库上的jar包,导致依赖不上

熟悉的Android开发的同学都知道,jitpack上面可以自由发布我们自己的jar包,很多Android的开源库大部分都是在上面发布的

由于上图中的标红的那部分,阿里云把我们所有的依赖请求地址都走它那边,而阿里云实际上包含的仓库也就下面几种

阿里云包含的仓库列表

所以,我在项目中配好的第三方仓库,如下图所示

项目引用jitpack仓库地址

但由于阿里云不包含,依赖的时候就会报错..

所以,如果和我一样依赖其他仓库但是阿里云里不包含的,则需要改一下那个mirrorOf的属性

除此之外,我们还得改一下jar包的目录,不改的话就是下载到C盘,如果你嫌C盘太大,当我没说...

下面给出setting.xml的配置代码,修改一下localRepository就ok了

然后我把原本的注释都删掉了,小白们也不用配置太多东西(主要是我开发那么久也没有配置过这个配置文件了..)

<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  
  <!-- 改成你指定的jar包地址 -->
  <localRepository></localRepository>
  
  <pluginGroups>
  </pluginGroups>
  
  <proxies> 
  </proxies>

  <servers>
  </servers>
  
  <mirrors>
	<mirror>
	  <id>aliyunmaven</id>
	  <mirrorOf>public,google,gradle-plugin,spring,spring-plugin,repo1,repo2,central</mirrorOf>
	  <name>阿里云公共仓库</name>
	  <url>https://maven.aliyun.com/repository/public</url>
	</mirror>
  </mirrors>
  
  <profiles>
  </profiles>
  
</settings>

2.IDEA中的设置

IDEA中默认自带一个Maven,但是,你懂的,默认肯定都是在C盘,想都不用想...所以,还是设置成我们自己的Maven吧

IDEA设置Maven

PS:你之前的旧项目,如果移动到新电脑,你得把项目中的.idea文件夹删除,否则,idea会使用其自带的maven帮你项目,然后你就会很惊喜地发现,自己的C盘又少了几个G...
.idea文件夹里面就是存着之前的maven的目录,idea打开项目会自动读取这个文件夹,当该maven地址在本机找不到,就会默认使用其自带的maven打开

对了,上面说的设置必须是没有打开项目的情况下(即第一次进入到IDEA的首界面进行配置),否则,可能会无法生效,因为IDEA还有个给新项目的设置,如下图所示

IDEA的两个设置

以防万一,在我们设置完Maven后,打开一次项目,之后查看一下上图中的第二个的设置,看看Maven是不是与之前的设置保持一致

检查Maven设置是否一致

3.IDEA使用MAVEN

IDEA的右侧栏中,有个Maven菜单,打开它,我们就可以看到基本的mvn命令,不过常用的就是cleaninstall这两个命令而已(主要是其他的我不懂是干什么用的)

如果你发现,你点击run或者是debug跑项目报找不到类或者是找不到资源的异常,但是maven对应打包命令都没有问题,问题就是你没有给当前项目的各个文件夹配置属性

项目结构菜单

设置文件夹属性

你只需要设置好sourcesresources这两种文件夹即可,之后运行就没有问题了

你可以在project structure中进行设置,或者是在某个文件夹上面右键,选择make directory as菜单,选择sources或者resources即可

对了,使用Maven的时候,建议把skip test mode模式打开,跳过测试,如下图所示,我使用的是Material的图标,可能显示和各位不一样,参考一下文字即可,点击选中就是打开了

开启跳过测试模式

补充——如何使用第三方仓库

之前,我也提到了我项目中是使用了jitpack上的jar包,那么,如何让maven项目区其他仓库下载依赖呢?

有两种方法,一种是setting.xml文件中进行添加,另外一种则是在项目的pom.xml文件中进行配置

两者的区别:在setting.xml文件设置好之后,就是所有的maven项目都会生效,而写在pom.xml中的,只是对当前项目生效

个人比较推荐使用第二种,在项目的pom.xml中设置,为什么呢?

因为假如你的项目是开源或者是多个人协作的话,你自己在setting.xml文件中加了,然后你跑项目没问题,但别人跑项目就会出现找不到jar包的问题...

在pom.xml文件中加上下面的配置即可,当然,根据你自己的第三方仓库配置,也可以配置多个

<repositories>
	<repository>
		<id>jitpack.io</id>
		<name>jitpack.io</name>
		<url>https://www.jitpack.io</url>
	</repository>
</repositories>

参考

相关标签