您是否真的要加快Maven的编译/打包速度? 那么takari生命周期插件就是答案。
像你们中的许多人一样,我正在使用多模块Maven项目 。 与现有的许多系统相比,这不是一个很大的数目,它具有15个模块,3种不同的耳朵部署,带有属性文件的大量参数化以及大约10万行Java代码。 在开发高峰期,由于代码的遗留来源,因此代码需要大量重构,因此需要为每个开发人员进行持续的编译/打包和部署。
尽管这些年来学习难度很大,但我还是接受了Maven及其哲学。 我并不是说那是完美的,但我真的相信这是一个很好的工具,仍然有用,尤其是在您的项目和团队随着项目的发展而壮大时。 (尽管这篇文章不是关于Maven传福音的)。
因此,我们团队的问题之一是,尽管切换了正确的标志 ,将代码破坏并打包到模块中,使用配置文件和maven提供的所有“工具”,我们的构建和打包时间却开始缓慢增加,彻底清洁后达到1分钟的阈值。 我们的主要编译器是Sun / Oracle Javac,并且通过命令行而不是IDE进行打包来监视时间,在此您可以看到不同的时间,具体取决于“ Maven集成”和每种工具调用的内部编译器。 [我的参考机器是我的旧款MacBookPro 2009,Core 2 Duo 2.5,带有Vertex 3 SSD(启用了修剪)]
最近,当我浏览Jason Van Zyl ( 他是Maven的父亲 )的Twitter帐户时,我发现了takari生命周期插件 。 Jason和他的团队正在为Maven生态系统创建工具和插件,我希望将Maven社区多年来寻求的Maven生态系统带来人们期待已久的发展。
简而言之,takari生命周期插件是Maven生命周期的一种替代实现,它将5个不同的插件合而为一。 激活它后,它将接管并调用以下5种实现:
- 资源插件
- 编译器插件
- jar插件
- 安装插件
- 部署插件
你可以在这里阅读。 至少在我看来,最棒的是编译器插件,该插件在内部实施增量编译策略,该策略基于可以检测源文件和资源变化的机制!
为了理解区别,当在您的maven构建中使用takari编译器插件与经典编译器插件和javac(您中很多人可能会使用)进行比较时,我将共享此博客文章中的表格(解释增量编译) )。
显然,如果您选择调用JDT而不是Javac,结果将更好。 当前,我们坚持使用Javac ,但是上图使我在IntelliJ IDE上更改了默认编译器,尤其是当我进行重构和更改时,与Javac相比, JDT在增量编译方面要好得多。
安全吗
好吧,就我而言(我想在那里有很多人),我只是按照建议的方式
在这里 。 我在父pom中激活了插件,然后将所有jar模块的包装类型更改为'takari-jar'。
takari-jar
事实并非如此,最终更改是如此容易,您可以将其还原。
我在git repo上推送了takari生命周期更改的那一天,半小时后,我开始听到团队成员的“哇”和“ yeees”。 更改后重新打包非常便宜,对资源文件和属性的更改可确保在需要时获得新的打包。 我们的重新包装时间减少到50%-60%以上。
如果您的Maven版本碰巧遇到相同的问题,我强烈建议您尝试使用takari一天-这将使您和您的团队在一些严肃的时间上感到同样。
我还想指出,takari是免费的,尽管takari团队是为一个不知名的“大”客户开发和更新的,但该团队可以免费免费赠送它并与社区共享。 所以非常感谢您!!!该插件可以在maven Central中找到。
takari小组正在每周进行一次Google hangout ,信息可以在这里找到,我很抱歉我还没有参加,也许很早就参加了。
所以去Maven! 高隆!
翻译自: https://www.javacodegeeks.com/2014/11/do-you-really-want-to-speed-up-your-maven-compilepackaging-then-takari-lifecycle-plugin-is-the-answer.html
您是否真的要加快Maven的编译/打包速度? 那么takari生命周期插件就是答案。相关推荐
- maven 打包编译_您是否真的想加快Maven的编译/打包速度? 那么takari生命周期插件就是答案。...
maven 打包编译 像你们中的许多人一样,我正在使用多模块Maven项目 . 与现有的许多系统相比,它不是一个巨大的系统,它具有15个模块,3种不同的耳朵部署,带有属性文件的大量参数化以及大约10万 ...
- Maven第6篇:生命周期 插件
Maven第6篇:生命周期 & 插件 前面我们使用maven过程中,用到了一些命令,如下: mvn clean mvn compile mvn test mvn package mvn ins ...
- Maven环境搭建及常用命令、生命周期
一.下载maven包,解压 二.配置环境变量,MAVEN_PATH=解压路径 添加到path中 三.测试 mvn -v 查看maven版本 四.设置本地仓库的路径 在conf文件夹下的setting ...
- maven项目如何打包运行指定java程序(maven-shade-plugin插件的使用)
其实maven项目的打包就是将项目代码打包成可执行文件,在maven中有默认的打包插件,但是想要运行指定java程序就要使用maven-shade-plugin插件 maven-jar-plugin是 ...
- maven详解之生命周期与插件
Maven是一个优秀的项目管理工具,它能够帮你管理编译.报告.文档等. Maven的生命周期: maven的生命周期是抽象的,它本身并不做任何的工作.实际的工作都交由"插件"来完成 ...
- maven入门(1-3)maven的生命周期
maven的生命周期 maven的生命周期是抽象的,其实际行为都由插件来完成,引入maven 的 生命周期就是为了对所有的构建过程进行抽象和统一. 这种方式类似于模板方法,模板方法模式在父类中定义算法 ...
- maven 生命周期
2019独角兽企业重金招聘Python工程师标准>>> maven 生命周期 博客分类: maven . 三套生命周期 Maven拥有三套相互独立的生命周期,它们分别为cl ...
- Maven之(二)Maven生命周期
我们在开发项目的时候,不断地在编译.测试.打包.部署等过程,maven的生命周期就是对所有构建过程抽象与统一,生命周期包含项目的清理.初始化.编译.测试.打包.集成测试.验证.部署.站点生成等几乎所有 ...
- Maven生命周期详解
Maven强大的一个重要的原因是它有一个十分完善的生命周期模型(lifecycle),这个生命周期可以从两方面来理解,第一,顾名思义,运行Maven的每个步骤都由它来定义的,这种预定义的默认行为使得我 ...
最新文章
- MATLAB常用函数, 常见问题
- python3-Python3 数字(Number)
- Microsoft .NET Compact Framework 开发常见问题解答
- 自定义控件 - 流式布局:TagFlowLayout
- 2017年Q1安卓ROOT类恶意病毒发展趋势研究报告
- JZOJ 2309. 【中山市选2011】辽哥游戏
- java软尾山地车碳_JAVA FURIA 27.5入门软尾山地车评测
- java获取客服列表,java-从列表中获取处理案例的服务
- linux代码实现进程监控,linux进程监控shell脚本代码
- Syntaxhighligher 使用中的一些问题
- 【项目3-2】多肉植物网站
- 使用Standford coreNLP进行中文命名实体识别(NER)
- 计算机上机考试自我检查800字,检讨书自我反省800字考试没考好
- 元宇宙持续升温,金蝶推出数字员工破圈而来
- 音频源和音频监听脚本
- 快速复制软件哪个好用安全?支持一键复制粘贴的工具
- 机器学习LDA-基础Julia与Python的实现
- 数学符号--罗马字母
- 【QNX Hypervisor 2.2 用户手册】1.5 内存
- IDA调试修改内存数据
热门文章
- IDEA导入Maven项目,pom.xml文件中 有inspects a maven model for resolution problems报错 !!!!!!!!!!有用
- 面试项目 java-服务端 18h58
- android roboguice2,Android快速开发框架 roboguice
- kafka消费者接收分区测试
- mysql-on duplicate key update实现insertOrUpdate官方文档
- 转:Java并发编程与高并发解决方案(一)
- 基于maven的SpringMVC+Spring+MyBatis+Log4j2的pom配置
- springmvc(17)异步消息简介(部分)
- 并发工具类【线程安全相关的类】
- selenium自动化测试_Selenium测试可实现有效的测试自动化