前言
学习Springboot 的时候,做的一个java项目用到了maven,当我尝试用 Junit
进行单元测试某一项功能的时候,idea一直卡在加载 Resoving Maven dependencies
这个小窗口,看到窗口里的提示信息,加载的正是junit-platform-launcher
相关的依赖。于是我就开始了漫漫的,痛苦的调试之路。。。。
尝试办法1 ——修改Maven镜像
首先想到的应该就是修改Maven镜像为阿里云镜像了,因为我使用的是InteliJ idea 自带的Maven,所以我就去idea 插件安装目录,找到了Maven 插件,有Maven 2 ,Maven 3 两个版本,基本上都用 Maven 3 了,所以,找到setting.xml
文件,我的位置是在
D:\JetBrains\IntelliJIDEA\plugins\maven\lib\maven3\conf
添加配置信息
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
这个办法应该能接解决一部分问题,但是很可惜我失败了。。。
尝试办法二 —— 修改堆内存
JVM的堆的内存, 是通过下面面两个参数控制的
-Xms 最小堆的大小, 也就是当你的虚拟机启动后, 就会分配这么大的堆内存给你
-Xmx 是最大堆的大小 , 最大最多设置为物理内存的 1/4 为好
我看很多人提供的办法都是调高堆内存,来解决这个问题
依次选择 File >> settings >> Build,Excution,Deployment >> Build Tools >> Maven >> Importing
将 VM options for importer
选项 修改成 -Xms1024m -Xmx2048m
这个方法或许对很多人都有效,因为我找到的很多文章都是这个解决方法,但是对我来说还是不行。。。
尝试办法三 ——修改配置依赖 pom.xml
再谷歌百度许多遍之后,我终于在Jetbrain 的官方社区找到了一篇帖子解决了我的问题(看来很多时候官方社区什么的还是比较靠谱的)这里先贴上地址
JUnit 5 cannot be run in IntelliJ - Failed to resolve org.junit.platform:junit-platform-launcher:1.3.2
大致意思就是说在 项目的依赖配置文件 pox.xml 里加上 以下代码
<dependency>
<!-- this is needed or IntelliJ gives junit.jar or junit-platform-launcher:1.3.2 not found errors -->
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<scope>test</scope>
</dependency>
具体问题原因,是这样说的
The issue here is that IntelliJ is trying to resolve the required artifact itself without using the Maven 'User settings file' (settings.xml) as configured into the IDE. It is going direct to Maven Central which is blocked by my employer.
机器翻译大致意思是:
这里的问题是IntelliJ试图在不使用IDE中配置的Maven“用户设置文件”(settings.xml)的情况下解决所需的工件本身。它将直接连接到Maven Central,但被我的雇主屏蔽了
深吸一口气,忍住想骂人的冲动 ( 还能这样玩!!!)
不管怎么说,最后我的问题解决了,单元测试也成功了,最后我尝试删除上面的配置代码,也能运行成功,应该是依赖已经都修复了。
未尝试办法
网上还有文章说,idea 的Maven 插件太坑,建议自己重新安装Maven,这个我倒是没遇到过太多问题,没什么感觉,所以就没有尝试
总结
总之,前两个办法应该可以解决大部分问题,其他的就随缘吧。建议用谷歌搜搜试试,或者去Stack Overflow
官方社区看看。