Maven构建项目速度太慢的解决办法
问题描述
通过idea新建maven项目,参数设置好后,idea自动构建maven项目时,速度很慢。
参数设置如图:
执行时间如下图:
Total time为8:49,花了将近十分钟时间。
连续尝试了几次,都是如此,感觉编辑器卡住了一样。
问题原因
[DEBUG] Searching for remote catalog: http://repo1.maven.org/maven2/archetype-catalog.xml
这一条语句执行了很久。
编辑器在执行mvn archetype:generate命令时,需要指定一个archetype-catalog.xml文件,该命令的参数为-DarchetypeCatalog,用来指定archetype-catalog.xml文件从哪里获取,可选值为:remote,internal,local,默认为remote,即从http://repo1.maven.org/maven2/archetype-catalog.xml
路径下载archetype-catalog.xml文件,查看该文件可知,如下图:
该文件大小将近6M,在网速不理想情况下,由此方式下载势必会造成卡顿的情况。
速度测试
于是使用上述archetypeCatalog参数的三个数值remote,internal,local分别进行测试,得出如下结果:
- 参数值为remote时,Total time为8:49,如图:
- 参数值为internal时,Total time为1:19,如图:
- 参数值为local时,Total time为4:01,如图:
当然,测试取样数值较少,且为网速较低时测试,得到的结果也只是一个大概情况,即internal优于local优于remote,可能网速较快时,误差可以忽略。
因此,修改配置时的archetypeCatalog参数值即可。
archetypeCatalog设置
1、remote为默认值,不需设置。
2、修改archetypeCatalog为internal,有以下两种方法:
- 在新建maven项目时添加archetypeCatalog参数,并将值设置为internal
- 直接修改maven配置参数,在使用mvn archetype:generate命令时,加上-DarchetypeCatalog=internal
3、修改archetypeCatalog为local前,需要先将archetype-catalog.xml下载至本地,并将此文件放至maven仓库目录下,设置archetypeCatalog为local时,同样有以下两种方法:
- 在新建maven项目时添加archetypeCatalog参数,并将值设置为local
- 直接修改maven配置参数,在使用mvn archetype:generate命令时,加上-DarchetypeCatalog=local
几种解决方法都已罗列出来,至于选哪种,就看你喜好啦,编程过程中无卡顿,美滋滋。
- [译]Laravel 5.0 之方法注入
- [译]Laravel 5.0 之 Middleware (Filter-Style)
- [译]Laravel 5.0 之目录结构与命名空间
- Python机器学习的练习六:支持向量机
- [译]Laravel 5.0 之路由缓存
- [译]Laravel 5.0 之 表单验证类 (Form Requests)
- 如何在Python中保存ARIMA时间序列预测模型
- Laravel 5.0 发布, 海量新特性!!
- Python中的白噪声时间训练
- Python机器学习的练习五:神经网络
- 在Python中如何差分时间序列数据集
- 将Keras权值保存为动画视频,更好地了解模型是如何学习的
- TensorFlow:如何通过声音识别追踪蝙蝠
- Python机器学习的练习四:多元逻辑回归
- 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 文档注释
- [Web] CSS 中 Display(显示) 与 Visibility(可见性)的区别与用法
- [数据结构] 二叉搜索树的CURD(增删改查)操作
- Python 为什么用 # 号作注释符?
- Logging with ElasticSearch, Kibana, ASP.NET Core and Docker
- 【DB笔试面试843】在Oracle中,解释GLOBAL_NAMES设为TRUE的用途。
- SpringBoot 返回 json 数据以及数据封装(万字长文)
- 内核级木马与病毒攻防:Linux可执行文件的ELF格式描述
- 「 思考 」 React Hooks 的设计哲学
- JMeter之Json提取器详解
- nodejs 图片处理工具 gm 的使用!
- Java 进程内存分布
- Web 游戏监听浏览器返回点击事件 !
- 权限维持_Linux操作系统后门
- Linux入门学习笔记(一)
- CMD命令笔记总结