最近换了新电脑,重新配置了一遍环境,打开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的开源库大部分都是在上面发布的
由于上图中的标红的那部分,阿里云把我们所有的依赖请求地址都走它那边,而阿里云实际上包含的仓库也就下面几种
所以,我在项目中配好的第三方仓库,如下图所示
但由于阿里云不包含,依赖的时候就会报错..
所以,如果和我一样依赖其他仓库但是阿里云里不包含的,则需要改一下那个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吧
PS:你之前的旧项目,如果移动到新电脑,你得把项目中的.idea文件夹删除,否则,idea会使用其自带的maven帮你项目,然后你就会很惊喜地发现,自己的C盘又少了几个G...
.idea文件夹里面就是存着之前的maven的目录,idea打开项目会自动读取这个文件夹,当该maven地址在本机找不到,就会默认使用其自带的maven打开
对了,上面说的设置必须是没有打开项目的情况下(即第一次进入到IDEA的首界面进行配置),否则,可能会无法生效,因为IDEA还有个给新项目的设置,如下图所示
以防万一,在我们设置完Maven后,打开一次项目,之后查看一下上图中的第二个的设置,看看Maven是不是与之前的设置保持一致
3.IDEA使用MAVEN
IDEA的右侧栏中,有个Maven菜单,打开它,我们就可以看到基本的mvn命令,不过常用的就是clean
和install
这两个命令而已(主要是其他的我不懂是干什么用的)
如果你发现,你点击run或者是debug跑项目报找不到类或者是找不到资源的异常,但是maven对应打包命令都没有问题,问题就是你没有给当前项目的各个文件夹配置属性
你只需要设置好sources
和resources
这两种文件夹即可,之后运行就没有问题了
你可以在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>
评论区