核心之外的8个必备Maven插件
使用Maven作为构建管理工具,您已经习惯了其核心插件和功能。 现在, 是时候启动您的Maven游戏并发现可以为您最喜欢的构建工具添加省时功能的顶级插件了 。
如果您是Java开发人员,则可能熟悉Maven,它是自2014年以来一直为Java开发人员提供服务的领先构建工具。Maven是一个健壮且灵活的解决方案,它使开发人员可以(除其他外)为软件构建过程设置标准。在项目中映射对象和依赖项,将其部署为应用程序,并使其他项目可以访问它。
从本质上讲,Maven是一个插件执行框架,如果没有插件来启用不同类别的功能,Maven真的无法做很多事情。 在讨论为您收集的有用的Maven插件之前,让我们快速回顾一下Maven插件的确切功能以及它们如何适合Maven构建过程。
Maven构建过程的简要解剖
执行时,Maven将运行一系列称为目标的任务,这些任务本质上是Java方法。 这些目标包含在插件中,执行各种构建任务,例如编译项目和运行单元测试以及创建JAR和WAR文件。 两种类型的插件包括构建插件和报告插件,每种都在POM中的相应元素中定义。
这些任务的执行顺序由跨不同生命周期的Maven 生命周期阶段定义(默认,清理和站点生命周期是在安装时在Maven中预定义的)。 从逻辑上讲,来自不同插件的不同目标将映射到每个阶段。
由于Maven预先包装了自己的默认核心插件 ,因此几乎不需要配置就可以开始使用Maven作为构建工具。 使用它的大多数经验丰富的Java开发人员都非常熟悉Apache Foundation中的预打包插件,因为在设置Maven时会自动下载并安装它们。
而且,它们往往是行业标准,在大多数情况下,约定优先于个性化。 就是说,有一个很好的理由是,那里有数百个 由Apache ( 及其他 ) 开发和策划 的插件 。 这些插件可以执行独特的任务,例如与第三方工具集成以进行单元测试报告。 使用现成的插件来执行所需的任务可以节省大量自定义核心插件的工作量,甚至可以节省您编写自己的插件的工作量。
基于社区的反馈和我们自己开发Java应用程序的经验,我们收集了许多Maven插件专家保存在其Maven工具库中,这些插件可以帮助您优化构建过程以节省宝贵的时间。
8个Java开发人员必备的Maven插件
1. 构建助手Maven插件
在Maven 3+中受支持(但是对于仍然使用Maven 2+的人来说是较旧的版本),Build Helper是一个多工具插件,包括许多目标,可在Maven中启用一些非常有用的功能。 其中的目标是解决该项目的最新发行版,将测试源目录添加到POM,附加要安装和部署的其他工件等 。
2. Maven码头插件
由Eclipse Foundation开发的Jetty Maven插件使您可以快速部署和测试Java Web应用程序,而无需创建WAR并将其部署到Web容器 。 将jetty添加到POM的build部分后,您将能够使用IDE对项目进行更改,并且当您对修改的类和Web源进行更改时,Jetty插件会自动重新加载。 这样可以提高生产力和加快开发周期。
3. maven-shade-plugin
使用Apache Foundation提供的此插件,您可以将工件(包括其依赖项)打包在uber-jar中,并隐藏某些依赖项的包 。 在这种情况下,阴影是指重命名某些依赖项的程序包。 考虑到依赖关系,这提供了明显优于默认工件的JARing或WARing的优势。
4. spring-boot-maven-plugin
Spring Boot通常用于部署Webapp的后端,并且这个方便的插件为Maven添加了Spring Boot支持,因此您可以打包可执行JAR或WAR并“就地”运行应用程序 。 该插件包括用于运行,启动和停止Spring Boot应用程序,将您的JAR / WAR重新打包为可执行文件的五个目标,以及一个生成信息目标以生成供执行器使用的生成信息。
5. sql-maven-plugin
需要在构建过程中执行SQL命令吗? Maven SQL插件让您满意。 您可以将字符串与sqlCommand组合在一起执行SQL语句,通过srcFiles组合列出文件,并通过fileset组合一组文件来执行SQL语句 。
我们列表中的最后三个插件执行了非常相似的任务:打包Java应用程序 ,以便在所选的操作系统上轻松执行。
6. Windows: launch4j-maven-plugin
Launch4j是JAR文件的包装程序,可将它们转换为可执行文件以简化Java桌面应用程序的部署 。 Launch4j可以在Windows,Linux,Solaris或OS X上运行,并通过XML文件进行配置。 Launch4j的Maven插件使您可以在Maven构建过程中生成可执行文件。
7.苹果: appbundle-maven-plugin
在Apple机器上测试应用程序? 没问题。 这个Maven插件为OS X创建了一个Application Bundle,它将包含您所有项目的依赖和必要的元数据 。
8. Linux: debian-maven-plugin
最后但并非最不重要的是此插件,用于创建.deb软件包文件,版权文件和可传递性地复制运行时依赖项 。 跨平台且独立(不需要其他外部工具),将其添加到您的Maven构建过程中所需要的就是Java 8和Maven 3.3。
当然,这是一个很短的清单。 如果您正在阅读此书并想知道“为什么X不在列表中”? 奇怪的是,这仅仅是因为我们的Maven常驻专家尚未了解它,如果您进行介绍并在评论中提及您最喜欢的Maven插件,将不胜感激。
From: https://blog.codota.com/8-essential-maven-plugins-beyond-the-core/
核心之外的8个必备Maven插件相关推荐
- 常用Maven插件介绍(上)
转自 : http://www.infoq.com/cn/news/2011/04/xxb-maven-7-plugin 我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务, ...
- Maven实战——常用Maven插件介绍
http://www.infoq.com/cn/news/2011/04/xxb-maven-7-plugin 我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任 ...
- 常用Maven插件介绍(下)(转)
我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的.进一步说,每个任务对应 ...
- 常用 Maven 插件终极大全
简介: 我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的.本文将为大家 ...
- 构建maven项目插件_如何构建一个Maven插件
构建maven项目插件 使用Okta的身份管理平台轻松部署您的应用程序 使用Okta的API在几分钟之内即可对任何应用程序中的用户进行身份验证,管理和保护. 今天尝试Okta. 由于其插件生态系统的普 ...
- owasp maven_OWASP依赖性检查Maven插件–必须具备
owasp maven 我不得不非常遗憾地承认,我不知道OWASP依赖检查maven插件 . 自2013年以来似乎已经存在.显然GitHub上已有千个项目正在使用它. 过去,我手动检查了依赖项,以根据 ...
- dojo还有人用吗_我的Dojo中有一个Mojo(如何编写Maven插件)
dojo还有人用吗 我一直忙于在工作中使用Maven的腋窝. 对于很多开发人员,我会听到:"那又怎样." 区别在于,我通常在无法直接访问Internet的环境中工作. 因此,当我说 ...
- 如何构建一个Maven插件
使用Okta的身份管理平台轻松部署您的应用程序 使用Okta的API在几分钟之内即可对任何应用程序中的用户进行身份验证,管理和保护. 今天尝试Okta. 由于其插件生态系统的普及,Apache Mav ...
- OWASP依赖性检查Maven插件–必须具备
我不得不非常遗憾地承认,我对OWASP依赖检查maven插件一无所知. 自2013年以来似乎已经存在.显然GitHub上已有千个项目正在使用它. 过去,我手动检查了依赖项,以根据漏洞数据库对其进行检查 ...
最新文章
- Spring Boot + Vue.js 实现前后端分离(附源码)
- js中的全局变量和局部变量
- Apache Kafka-初体验Kafka(03)-Centos7下搭建kafka集群
- 再见,Python。你好,Go 语言
- android手机deviceowner,删除 androidDeviceOwnerWiFiConfiguration
- 【LeetCode笔记】240. 搜索二维矩阵II 剑指 Offer 04 二维数组中的查找(Java、指针)
- pdo mysql 和 mysqli_PHP中MySQL、MySQLi和PDO的用法和区别
- c语言编译时间,C语言中关于时间的函数
- ECCV 2020 论文大盘点-姿态估计与动作捕捉篇
- 批量安装Windows补丁
- 我要上 Pwn2Own
- 2022-2027年中国沙漠旅游行业市场全景评估及发展战略规划报告
- 三、单因素方差分析例题(R语言)
- Javaweb的HTML的表单标签
- 面试字节跳动后台开发(实习)
- secKill项目 --- Redis预减库存的存在的问题 及 库存补偿
- 关于泊松分布在测序原理中的解释
- Android studio MacBook快捷键
- Neo4j Server shutdown initiated by request最简暴的解决办法。
- Java7 的Random伪随机数和线程安全的ThreadLocalRandom