三招破idea创建maven项目速度慢问题
阅读本文大概需要 2 分钟。
转载自:www.cnblogs.com/yeya 原作者:xue无止境
困扰
Intellij idea是一款非常强大的编辑器,可以很方便地帮我们创建maven项目,有用过的同学应该都深有体会,但我们经常会遇到一个困扰。
那就是用idea创建maven项目时,速度很慢,往往需要好几分钟的时间,有时甚至会卡住,主要原因是创建maven项目时默认是下载求网络上的一个文件archetype-catalog.xml,该文件的大小有5-6M,下载的速度很慢,导致创建过程也变得很慢。
解决办法
解决办法有三种,并且都需要对maven的VM Options参数做配置。
方法一:
在maven的VM Options加上-DarchetypeCatalog=internal参数,步骤如下:
打开idea的启动界面,进入全局设
搜索maven,点击Runner一栏,在VM Options输入框里写上 “-DarchetypeCatalog=local”,
确定后,再新建maven项目,就能发现项目很快就创建完成。
方法二:
下载archetype-catalog.xml文件,在maven的VM Options加上-DarchetypeCatalog=local
默认情况下,创建maven项目是从网络下载catalog文件,我们可以将catalog文件下到本地,然后通过设置archetype的使用方式为local,这样就不用每次都从网络上下载了。
步骤:
1.下载archetype-catalog.xml文件到本地。
文件的位置是http://repo1.maven.org/maven2/archetype-catalog.xml,但直接访问是下载不了,我把该文件放在了github上,有需要的同学可以点击下载。
https://github.com/Taoxj/sc_properties
2.下载后放到本地仓库中对应的位置
maven本地仓库的位置与settting.xml中的配置有关,例如我的setting.xml配置仓库的位置是:D:apache-maven-3.6.0repositor
那么catalog文件就可以放在 D:apache-maven-3.6.0repositoryorgapachemavenarchetypearchetype-catalog3.0.1下
如果setting.xml没有配置仓库位置,那么就放到默认本地仓库下面对应的位置即可。本地仓库的默认位置是:Default: ${user.home}/.m2/repository,例如笔者的计算机用户名是Administrator,仓库位置就是 C:UsersAdministrator.m2repository。
3.修改maven的VM Options参数
跟之前方法的步骤一样,打开全局设置中的maven设置栏,然后在VM Options输入框中填入
-DarchetypeCatalog=local
这样maven每次就会从本地获取catalog文件,创建项目时就不用等那么久了。
方法三:
在maven的VM Options加上-Dmaven.multiModuleProjectDictory=$MAVEN_HOME参数,MAVEN_HOME是你环境变量中配置maven环境的名
设置好参数后,新建maven项目的时候添加上参数archetypeCatalog,值为local,或者是如果本地仓库里有了catalog文件,参数值也可以为loca
确定之后,maven项目就能很快的建成了。
心得
以上就是解决idea创建maven项目速度慢的几种方案,值得说明的是,三种方案并不都是有效的,例如笔者曾经尝试过前两种方案,发现公司的电脑能成功,家里的电脑却行不通。
然后我又尝试了第三种方案,发现还是失败,上网查了一下才知道,原来是jdk和maven版本不兼容的问题。
两台电脑的jdk版本都是1.8的,但我公司电脑安装的maven版本是3.5,而私人电脑安装的是3.3的maven版本,于是我在私人电脑上同样安装了3.5的maven版本,重新尝试第三种方案,结果居然成功了。
兴奋过后我又在私人电脑上尝试了前两种方案,发现还是解决不了问题,而且直到现在我都不知是什么原因导致,无奈,只能过后再研究看看。
最后提点建议,读者们可以先尝试前两种方案,因为一劳永逸,不用创建项目的时候都配置参数,如果行不通的话再采取第三种方案好了。
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- RIME-使用小心得
- 致第一次安装(yong)小小输入法的你
- codeblocks编译调试C语言二级指针小记
- 二级指针的操作及理解、演示
- 设计之禅——解释器模式(译文)
- 设计之禅——中介者模式
- 设计之禅——备忘录模式
- 设计之禅——访问者模式
- 在scite编辑器中使用astyle格式化c代码
- 简单的51单片机多任务操作系统(C51)
- 使用KEIL C51实现的简单合作式多任务操作系统内核
- Zookeeper——分布式一致性协议及Zookeeper Leader选举原理
- 使用KEIL C51实现的简单合作式多任务操作系统内核(单片机实现版本)
- Zookeeper——基本使用以及应用场景(手写实现分布式锁和rpc框架)
- 函数指针数组指针+结构体数组