如何提高maven的编译速度
作为java开发都有这样的体会:打包一个项目需要等很久。今天我们就研究一下如何提升mvn的编译速度。
1)Parallel Builds in Maven:
默认Maven不使用硬件的全部功能,它顺序地构建所有模块。通常,可以命令Maven分析您的项目(包括依赖关系图),并在可能的情况下并行构建项目。可以指定用于构建项目的确切线程数,也可以使用参数的可移植版本,并根据计算机上可用的CPU来指定线程数。
- mvn -T 4 install -- will use 4 threads
- mvn -T 1C install -- will use 1 thread per available CPU core
尽管您的项目可能难以并行构建,但值得尝试。每个CPU内核使用一个线程是一个很好的默认设置。您的开发机器可能具有备用的计算能力,加快构建过程始终很有用。
2)Build Necessary Modules Only:
假设有一个多模块项目,该项目包含很少更改的通用核心模块,以及当前正在使用的网络界面。更改Web界面模块后,请尝试运行如下命令:mvn install -pl $moduleName -am
- -pl - makes Maven build only specified modules and not the whole project.
- -am - 使Maven找出目标模块所依赖的模块并进行构建
一起使用这些选项的结果是灵活性和速度的完美结合。我们知道我们通常在使用哪个模块,并且如果我们更改了任何依赖关系,它们也会被更新。同时,您的项目构建中的很大一部分将被跳过,要么是因为它仍然是最新的并且不需要重建,要么是因为它不是目标模块的一部分,并且不会发挥作用。
3)限制上网:
所有构建系统(npm,gradle和sbt)都会联网下载一些内容。可以启用一个简单的选项,使Maven脱机工作。启用脱机模式后,Maven在解决依赖关系时将不会连接到任何远程存储库。本地存储库中的所有jar文件仍将可用,因此不会破坏您通常的工作流程。因此,只需在您的mvn命令后加上--offline,Maven就不会试图检查您最喜欢的依赖项的新快照,也不会让您等待网络响应。
如果您不希望它脱机,但拥有不可靠的网络连接,则可以尝试设置:-DdependencyLocationsEnabled = false为MAVEN_OPTS变量。这种增加意味着Maven将在整个构建过程中保留较少的传出连接,并且可能还会缩短构建过程的几秒钟。
4)提高java启动速度:
Maven是一个Java程序,可以调整使JVM的启动速度更快(考虑到我们不会处理长时间运行的应用程序服务器进程,为了确保以后的更快执行速度,这是安全的,我们可以为您推荐以下两个选项)
-XX:+TieredCompilation -XX:TieredStopAtLevel=1
我们只是让您的JVM仅执行代码的基本即时编译。它不会尝试收集更精确的配置文件并更好地优化代码的执行。这样做的好处是,JIT不需要那么多信息,并且经过优化的代码实际上有机会在构建之后就开始使用。请注意,该建议仅是理论上的建议,如果您可以尝试并提出您的项目是否能从中受益,我将非常高兴。
总结:
MAVEN_OPTS= -XX:+TieredCompilation -XX:TieredStopAtLevel=1
mvn -T 1C install -pl $moduleName -am --offline
它将剥夺Maven烦人的下载互联网的权利,仅构建必要的模块及其依赖项,同时将JVM调整为运行速度更快,运行时间更短的程序,并且不会无休止地清理整个项目。
参考:https://www.jrebel.com/blog/how-to-speed-up-your-maven-build
如何提高maven的编译速度相关推荐
- 提高vivado的编译速度
提高vivado的编译速度 如何充分使用自己的电脑硬件资源提高vivado的编译速度 如何读取当前线程数 如何设置当前线程数 如何充分使用自己的电脑硬件资源提高vivado的编译速度 在编译vivad ...
- iOS之性能优化·提高App的编译速度
一.前言 经过多年的开发和迭代,我相信很多的 iOS 项目代码已经达到几十万行甚至上百万行的规模,所使用的 Pod 库的数量可以达到几十个甚至上百个,App Store 安装包也变得越来越大,在这么大 ...
- 如何提高 Xcode 的编译速度
本文总结自 WWDC 2018 building faster in xcode 该 Session 通过一系列的实践来实现 Xcode 的快速编译,共阐述了六个大方面,分别是: 将编译过程并行化 通 ...
- Maven学习总结(57)—— 如何提高 Maven 的构建速度?maven-mvnd 又是什么鬼?
前言 Maven 经常被拿来和 Gradle 做对比,最大的劣势之一就是 Maven 构建慢,Gradle 比 Maven 构建速度快 2 到 10 倍,而如今 Maven 也可以更快了.Apache ...
- 如何提高Visual Studio编译速度
https://www.cnblogs.com/kuangke/p/9621607.html https://docs.microsoft.com/en-us/cpp/build/reference/ ...
- 使用预编译头提高编译速度
什么是预编译头 在介绍预编译头之前,有必要了解一下C/C++的编译方式.C/C++的编译单元是源文件(带有.c..cc..cpp等扩展名的文件),在编译一个源文件之前,预处理器会把这个源文件中所有通过 ...
- 提高vivado编译速度
1.当RTL代码修改较少时,使用增量编译功能可以提高工程的编译速度. 2.在控制台输入命令:set_param general.maxThreads 4,使用4个线程对工程进行编译.vivado默认是 ...
- 如何快速提高英飞凌单片机编译器 TASKING TriCore Eclipse IDE 编译速度
1.前言 使用英飞凌单片机编译器 TASKING TriCore Eclipse IDE 开发编译时,想必感受最深刻的就是编译速度,那是非常慢了,如果是部分修改的源文件编译还好,不用等太久,而如果选择 ...
- 加快linux编译速度,Linux Makefile 编译速度的优化【转】
前言 如何提高 Makefile 的编译速度呢?既然是提高,那肯定是对于大项目而言,因为小项目本身源文件不多,Makefile 优化与否,对于编译速度而言,影响并不大.当然对于那些追求速度达到极致的人 ...
- 关于vue 动态引入(异步加载import和require)组件的方法和坑(按需懒加载组件,动态生成路由)babel-plugin-dynamic-import-node 优化编译速度
前言: 最近在改造vue-cli 2.x + webpack2.x的项目时,由于之前路由是静态的,没有根据菜单权限动态生成前端路由.所以想对此进行改造,然后碰到了一些问题和坑,现在总结一下,避免以后继 ...
最新文章
- oracle闪回 分区,Oracle 闪回区(Oracle Flash recovery area)
- python增删改查人名管理_python3字典列表的增删改查(名片管理系统函数版)
- [Step By Step]如何在SAP Business Object Data Services中连接到SAP HANA 数据库
- Python 数据分析包:pandas 基础
- 两个vlan之间如何通信_如何桥接两个不同的VLAN?
- 关于spring 获取不到网站上的xsd的处理记录
- 动态网站Web开发用什么语言好?PHP、ASP还是ASP.NET
- sqlite字符串连接(追加写入)
- imx8mm yocto_bsp 编译
- 第 3 章 MCS-51 单片机指令系统
- Filter过滤器及其作用
- Heka的一些计算过程数据存放目录
- firefox火狐同步windows和linux书签
- 《JAVA语言程序设计》期末考试试题及答案
- 故意伤害罪具体会有什么处罚
- 新安装Win7 Windows Update 错误 代码80072EE2 80072EFE
- 计算机英语词汇音频,[听单词] 计算机专业英语词汇音频84,计算机英语单词MP3
- fckeditor文档库
- EC11旋转编码器电路和程序
- python爬取北京租房信息
热门文章
- 新浪云SAE共享型数据库MySQL使用经验
- 如何将一个div水平垂直居中?6种方法做推荐
- [蓝桥杯]打水问题、夺宝奇兵、调手表(c++详解)
- c语言厘米换算分米程序设计,厘米和分米换算(米和厘米换算)
- calibre的使用技巧
- 计算机组成第六章作业,计算机组成原理第六章作业_计算机的运算方法1
- 2022上半年朋友圈都在传的10本书,找到了
- 立创开源|太阳能逐日系统
- oracle重建表导致同义词失效,一次对dual表的恢复操作(ORA-00980:同义词转换不再有效错误解决方法)...
- Matlab绘图模板