maven 构建增量包_使用Maven进行增量构建
maven 构建增量包
这是2020年,如果您要开始任何新的基于Java的项目,那么gradle应该是第一选择,但是由于某些原因,如果您仍然对Maven感兴趣,那么您可能会发现这篇文章很有用。
Maven Java / scala编译器插件对增量编译提供了不错的支持,但它无法处理一些极端情况,例如
- 从源文件夹中删除文件时触发编译 。
- 不更改代码时跳过单元测试。
大多数情况下,只是为了处理已删除文件的情况
“ mvn全新安装” ,这意味着将遵守完整的代码并执行单元测试。
Scala代码的编译很慢,如果项目包含运行缓慢的测试(如启动Webserver,spark上下文,IO等),则情况会变得更糟。 在许多情况下,等待时间可能是几分钟。
即使代码未更改,我也没有考虑浪费的CPU周期来运行测试。
作为一个实验,我从Gradle中吸取了一些想法,并编写了附加的Maven插件,该插件可以解决上述问题
1.更改代码并触发完整构建时,清理目标位置。
2.在不更改代码的情况下跳过单元测试执行。
这两个功能都可以帮助大大减少编译时间,因为在大多数情况下,只有很少的模块被更改并且可以使用以前的生成输出。 您可以通过启用此插件来快速构建。
如何使用插件
该插件是在预清理阶段添加的,将以下条目添加到pom.xml并使用“ mvn pre-clean install”
<plugin><groupId>mavenplugin</groupId><artifactId>compilerplugin</artifactId><version>1.0-SNAPSHOT</version><executions><execution><id>pre-clean</id><phase>pre-clean</phase><goals><goal>inc</goal></goals></execution></executions> </plugin>
插件代码,请@ compilerplugin GitHub库
使用插件的沙箱代码可用@ 编译器 plugintest github仓库
结论
始终收集有关构建的度量标准,例如编译所需的时间,测试所花费的时间,包大小,依赖项等。一旦开始测量,您将注意到构建的速度很慢,并且还需要与代码相同的爱好。
快速构建是实现连续交付的第一步。
翻译自: https://www.javacodegeeks.com/2020/03/incremental-build-with-maven.html
maven 构建增量包
maven 构建增量包_使用Maven进行增量构建相关推荐
- mvn 打包可执行包_用Maven打包发布可执行的jar包
项目有个需求,要把当前项目的代码和依赖打包成一个jar包,再把jar包和一些相关文件一起打包成一个tar 这里用到了两个插件,shade 和assembly,shade负责生成jar包,assembl ...
- workbook需要引入的包_解决Maven引用POI的依赖,XSSFWorkbook依旧无法使用的问题
Java项目,导入Excel数据功能,第一次使用POI,一开始就遇到了小麻烦! Maven项目引用POI的jar包 org.apache.poi poi 3.14 引入后XSSFWorkbook依旧无 ...
- maven 加入第三方库_关于maven,你还要翻阅多少资料才能整理出这一份完整文档...
一.介绍 Maven是一款Apache基金会下的项目构建工具,可以用来任何基于Java的项目,遵循约定由于配置的思想,能够大大简化我们工作中繁琐的项目构建.官网地址:http://maven.apac ...
- maven创建java项目_使用maven命令行创建java项目
一.先创建一个quick-start项目: 使用 mvn archetype:generate 进行创建,如果没有指定参数或者项目类型,交互系统首先会询问创建项目的基本类型, 如下所示,默认为类型7. ...
- 常用jar包_发布Maven包的正确姿势
本文介绍如何把自己写的Maven包发布到公开仓库/中央仓库/私有仓库. 当我们使用commons-logging这些第三方开源库的时候,我们实际上是通过Maven自动下载它的jar包,并根据其pom. ...
- maven引用公共包_使用github作为maven仓库存放发布自己的jar包依赖 实现多个项目公共部分代码的集中,避免团队中多个项目之间代码的复制粘贴...
使用github作为maven仓库存放发布自己的jar包依赖 实现多个项目公共部分代码的集中,避免团队中多个项目之间代码的复制粘贴. 1.首先在本地maven位置的配置文件setting.xml(没有 ...
- cdh 添加jar包_使用maven下载cdh版本的大数据jar包
MyEclipse SVN安装方法 方法一:在线安装 1.打开HELP->MyEclipse Configuration Center.切换到SoftWare标签页. 2.点击Add Site ...
- maven 打包替换文件_使用Maven打包生成文件 | 学步园
状况:Maven会自动package一些文件到默认目录,或我们会指定一些文件生成到指定目录.比如一些配置文件,一些脚本. 需求:将这些需要文件打包成一个gz压缩包 方法: 1. 建立assembly文 ...
- 构建忽略测试_分类测试以减少构建时间
构建忽略测试 在继续本文的主要内容之前,让我们先进行一些定义. 单元测试 单元测试是小型的(测试一个用例或一个单元),在内存中运行(不与数据库,消息队列等交互),可重复且快速的测试. 对于我们的对话, ...
最新文章
- zabbix 3.2安装部署(一)
- php curl viewstate,php curl – 发布asp.net viewstate值
- python数字图像处理-图像噪声与去噪算法
- TOUGHRADIUS 项目介绍
- DATEDIFF 函数使用
- powerpc和arm_为什么我喜欢ARM和PowerPC
- matlab程序 surf算法,【求大神帮忙,surf算法源代码解析】
- SAP License:今天你‘牺牲’了吗?
- sass笔记 - 实战中颜色的玩法总结
- G.8032协议 ERPS
- 电子信息业取得长足发展 效益与质量同步提升
- Moo Slidebox
- Handler的理解、用法以及运行机制原理
- android scala,用scala开发android,用spray-json解析json
- jadx学习记录01
- Parellel TSP
- iOS和Android的app界面设计规范
- CSS选择器(select)
- 盘点IT行业“中国式合伙人”的离合春秋
- 微信小程序支付功能用服务器吗,微信小程序 支付功能 服务器端(TP5.1)实现...
热门文章
- E - Flow Gym - 102471E
- acwing3132. 食物(BZOJ3028)
- 疾病预测和天气分析练习赛
- 【学习笔记】无向图、有向图的三元环、四元环计数问题(根号分支+bitset)
- 夯实基础项目工程之图论——Uncle Bogdan and Country Happiness,Graph Coloring,How Many Paths?,Array Differentiation
- 【CF1100F】 Ivan and Burgers (分治+线性基)
- P5056-[模板]插头dp
- jzoj6288-旋转子段【优雅的暴力】
- 【主席树】更为厉害(P3899)
- 初一模拟赛总结(2019.4.13)