Maven构建项目速度太慢的解决办法
来源:互联网 发布:高频呼叫电话知乎 编辑:程序博客网 时间:2024/04/29 16:29
Apache Maven是当今非常流行的项目构建和管理工具,它把开发人员从繁杂的项目依赖关系处理事务中解放出来,完全自动化管理依赖问题。在Web应用开发过程中,通常我们会用到maven的archetype插件来生成项目框架,例如:
mvn archetype:generate -DgroupId=com.yourhost.app -DartifactId=your-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false但通常这个过程是虐心的。
现象:
用maven构建项目骨架时,速度非常慢,无论是在命令行中直接使用,还是在IDE中使用。如果再加上网络不好,那就更难熬了,喝完三杯咖啡都不见得能看到构建结果。以我的经验,很多时候都要30分钟左右............
原因:
要了解其中的原因,需要知道maven是如何运作的。构建过程中,我们只是向maven提供了一些groupId、artifactId、archetypeArtifactId等信息,只有这些信息的情况下maven是如何构建出整个项目的呢?它的知识来源于哪里呢?答案是:
http://repo1.maven.org/maven2/archetype-catalog.xml这里记录了,所有archetype构建信息,maven通过archetype插件构建项目骨架时会远程访问页面,通过maven的-X参数可以证明这一点。
.............[DEBUG] -- end configuration --[INFO] Generating project in Batch mode[DEBUG] Searching for remote catalog: http://repo1.maven.apache.org/maven2/archetype-catalog.xml (通常就卡在这一步长达25+分钟)..............
直接在浏览器打开这个链接的速度一样非常慢。打开后通过浏览器的查看源码功能,如下所示:
<?xml version="1.0" encoding="UTF-8"?><archetype-catalog> <archetypes> <archetype> <groupId>am.ik.archetype</groupId> <artifactId>maven-reactjs-blank-archetype</artifactId> <version>1.0.0</version> <description>Blank Project for React.js</description> </archetype> <archetype> <groupId>am.ik.archetype</groupId> <artifactId>msgpack-rpc-jersey-blank-archetype</artifactId> <version>1.0.7</version> <description>Blank Project for Spring Boot + Jersey</description> </archetype> <archetype> <groupId>am.ik.archetype</groupId> <artifactId>msgpack-rpc-jersey-blank-archetype</artifactId> <version>1.0.6</version> <description>Blank Project for Spring Boot + Jersey</description> </archetype> <archetype> <groupId>am.ik.archetype</groupId> <artifactId>msgpack-rpc-jersey-blank-archetype</artifactId> <version>1.0.5</version> <description>Blank Project for Spring Boot + Jersey</description> </archetype> <archetype> <groupId>am.ik.archetype</groupId> <artifactId>msgpack-rpc-jersey-blank-archetype</artifactId> <version>1.0.2</version> <description>Blank Project for Spring Boot + Jersey</description> </archetype> <archetype> <groupId>am.ik.archetype</groupId> <artifactId>mvc-1.0-blank-archetype</artifactId>......................................以下省略13W行......
复制文件到编辑器可知,文件长达13W行,文件大加上网络原因,导致访问速度很慢。
解决方案:
如上分析可知,是由于achetype-catalog.xml文件的访问问题,导致了整个构建过程的缓慢,所以是否能够将文件保存到本地,成为一种解决思路。翻阅Maven官方文档可以找到,确实是可以的。官方链接如下:
http://maven.apache.org/archetype/maven-archetype-plugin/specification/archetype-catalog.html按照如下步骤:
1)准备archetype-catalog.xml文件
方式1:通过浏览器查看http://repo1.maven.org/maven2/archetype-catalog.xml页源码,复制到本地,命名为archetype-catalog.xml。
方式2:通过命令行 curl http://repo1.maven.org/maven2/archetype-catalog.xml > archetype-catalog.xml
2)将上述文件放置到maven的默认路径下
注意,这不是指的安装路径,而是mvn运行时默认的存放repository的路径,一般在用户根目录下的一个隐藏目录,~/.m2。如果做过更改,可以在maven的设置文件中查看 具体在哪个位置,设置文件在maven安装目录/config/settings.xml中。
3)在构建时,在archetype:generate后加上 -DarchetypeCatalog=local参数。IDE如eclipse和idea,都是可以在创建maven工程时设置构建参数的,如下图所示:
创建过程中,添加参数:
解决,Have fun!再次尝试构建项目骨架,飞一般的感觉。
参考资料:
http://maven.apache.org/archetype/maven-archetype-plugin/specification/archetype-catalog.html
- Maven构建项目速度太慢的解决办法
- Maven构建项目速度太慢的解决办法
- Maven构建项目速度太慢的解决办法,以及报错"Retrieving archetypes:". Java heap space
- Maven构建项目速度太慢的解决办法,以及报错Retrieving archetypes:' has encountered a problem
- Maven构建项目太慢的解决方法
- 解决maven项目构建下载速度慢的问题
- Maven构建项目速度慢问题解决
- 解决maven构建项目速度慢问题
- idea使用maven新建项目速度太慢
- ubuntu ssh登入速度太慢的解决办法
- 关于selenium调用IE执行速度太慢的解决办法
- Android Studio/Gradle构建太慢解决办法
- Maven加载依赖速度慢的原理和解决办法
- 解决IDEA创建maven项目太慢的问题
- 解决JAVA MAVEN项目加载太慢的问题
- Android Studio导入项目太慢的解决办法
- maven下载速度太慢(换成阿里云的maven中央仓库)
- maven下载速度太慢(换成阿里云的maven中央仓库)
- animation-list标签机型问题
- MySql插入中文乱码以及中文插入异常
- mount -o nolock -t nfs failed: Protocol not supported挂载失败
- Lua math中各个方法对照表
- 前端工作面试经典问题(超级全)
- Maven构建项目速度太慢的解决办法
- 如何快速搭建一个完整的移动直播系统?
- 微软修复已存在19年的漏洞
- Android 使用RxJava+Retrofit +Realm 组合加载数据 <读取缓存 显示 请求网络数据 缓存最新数据 更新界面>(一)
- 【USACO2.4.2】穿越栅栏
- C# 获取系统图标
- 【刷题之路】栈的压入、弹出序列
- android listview 点击最后两笔item 键盘遮挡问题解决
- 蓝桥杯:指数运算