使用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。 build-helper-maven-plugin
在Maven 3+中受支持(但是对于仍然使用Maven 2+的人来说是较旧的版本),Build Helper是一个多工具插件,包括许多目标,可在Maven中启用一些非常有用的功能。 其中包括目标,例如解决该项目的最新发行版本,将测试源目录添加到POM,附加要安装和部署的工件等。
2。 maven-jetty-plugin
由Eclipse Foundation开发的Jetty Maven插件,无需创建WAR并将其部署到Web容器即可快速部署和测试Java Webapp 。 将Jetty添加到POM的“构建”部分后,您将能够使用IDE对项目进行更改,并且当您对修改的类和Web源进行更改时,Jetty插件会自动重新加载。 这样可以提高生产力和加快开发周期。
3。 maven-shade-plugin
使用Apache Foundation提供的此插件,您可以将工件打包到一个uber-jar中,包括其依赖项,并为某些依赖项的包着色。 在这种情况下,阴影是指重命名某些依赖项的程序包。 考虑到依赖关系,这提供了明显优于默认工件的JARing或WARing的优势。
4。 spring-boot-maven-plugin
Spring Boot通常用于部署Web应用程序的后端,并且此便捷的插件将Spring Boot支持添加到Maven,因此您可以打包可执行JAR或WAR并“就地”运行应用程序。 该插件包括运行,启动和停止Spring Boot应用程序,重新打包JAR / WAR以使其可执行的五个目标,以及一个生成信息目标以生成供执行器使用的生成信息。
5。 sql-maven-plugin
需要在构建过程中执行SQL命令吗? Maven SQL插件让您满意。 您可以通过使用sqlCommand的字符串组合来执行SQL语句,使用srcFiles的文件列表和具有文件集的文件集来执行。
我们列表中的最后三个插件执行了非常相似的任务:包装 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创建了一个应用程序捆绑包,其中包含您所有的项目依赖项和必要的元数据。
8。 Linux: debian-maven-plugin
最后但并非最不重要的是此插件,用于创建.deb软件包文件,版权文件和传递性复制运行时依赖项。 跨平台且独立(不需要其他外部工具),将其添加到您的Maven构建过程中所需要的就是Java 8和Maven 3.3。
这当然是一个很短的清单。 如果您正在阅读此书并想知道“为什么X不在列表中”? 奇怪的是,这是因为我们的Maven常驻专家尚未了解它,如果您进行介绍并在评论中提及您最喜欢的Maven插件,将不胜感激。
分享此内容:
由Eclipse Foundation开发的Jetty Maven插件,无需创建WAR并将其部署到Web容器即可快速部署和测试Java Webapp 。 将Jetty添加到POM的“构建”部分后,您将能够使用IDE对项目进行更改,并且当您对修改的类和Web源进行更改时,Jetty插件会自动重新加载。 这样可以提高生产力和加快开发周期。
3。 maven-shade-plugin
使用Apache Foundation提供的此插件,您可以将工件打包到一个uber-jar中,包括其依赖项,并为某些依赖项的包着色。 在这种情况下,阴影是指重命名某些依赖项的程序包。 考虑到依赖关系,这提供了明显优于默认工件的JARing或WARing的优势。
4。 spring-boot-maven-plugin
Spring Boot通常用于部署Web应用程序的后端,并且此便捷的插件将Spring Boot支持添加到Maven,因此您可以打包可执行JAR或WAR并“就地”运行应用程序。 该插件包括运行,启动和停止Spring Boot应用程序,重新打包JAR / WAR以使其可执行的五个目标,以及一个生成信息目标以生成供执行器使用的生成信息。
5。 sql-maven-plugin
需要在构建过程中执行SQL命令吗? Maven SQL插件让您满意。 您可以通过使用sqlCommand的字符串组合来执行SQL语句,使用srcFiles的文件列表和具有文件集的文件集来执行。
我们列表中的最后三个插件执行了非常相似的任务:包装 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创建了一个应用程序捆绑包,其中包含您所有的项目依赖项和必要的元数据。
8。 Linux: debian-maven-plugin
最后但并非最不重要的是此插件,用于创建.deb软件包文件,版权文件和传递性复制运行时依赖项。 跨平台且独立(不需要其他外部工具),将其添加到您的Maven构建过程中所需要的就是Java 8和Maven 3.3。
这当然是一个很短的清单。 如果您正在阅读此书并想知道“为什么X不在列表中”? 奇怪的是,这是因为我们的Maven常驻专家尚未了解它,如果您进行介绍并在评论中提及您最喜欢的Maven插件,将不胜感激。
分享此内容:
Spring Boot通常用于部署Web应用程序的后端,并且此便捷的插件将Spring Boot支持添加到Maven,因此您可以打包可执行JAR或WAR并“就地”运行应用程序。 该插件包括运行,启动和停止Spring Boot应用程序,重新打包JAR / WAR以使其可执行的五个目标,以及一个生成信息目标以生成供执行器使用的生成信息。
5。 sql-maven-plugin
需要在构建过程中执行SQL命令吗? Maven SQL插件让您满意。 您可以通过使用sqlCommand的字符串组合来执行SQL语句,使用srcFiles的文件列表和具有文件集的文件集来执行。
我们列表中的最后三个插件执行了非常相似的任务:包装 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创建了一个应用程序捆绑包,其中包含您所有的项目依赖项和必要的元数据。
8。 Linux: debian-maven-plugin
最后但并非最不重要的是此插件,用于创建.deb软件包文件,版权文件和传递性复制运行时依赖项。 跨平台且独立(不需要其他外部工具),将其添加到您的Maven构建过程中所需要的就是Java 8和Maven 3.3。
这当然是一个很短的清单。 如果您正在阅读此书并想知道“为什么X不在列表中”? 奇怪的是,这是因为我们的Maven常驻专家尚未了解它,如果您进行介绍并在评论中提及您最喜欢的Maven插件,将不胜感激。
分享此内容:
Launch4j是用于JAR文件的包装器,可以将它们转换为可执行文件以简化Java桌面应用程序的部署。 Launch4j可以在Windows,Linux,Solaris或OS X上运行,并通过XML文件进行配置。 用于Launch4j的Maven插件可让您在Maven构建过程中生成可执行文件。
7。 苹果: appbundle-maven-plugin
在Apple机器上测试应用程序? 没问题。 此Maven插件为OS X创建了一个应用程序捆绑包,其中包含您所有的项目依赖项和必要的元数据。
8。 Linux: debian-maven-plugin
最后但并非最不重要的是此插件,用于创建.deb软件包文件,版权文件和传递性复制运行时依赖项。 跨平台且独立(不需要其他外部工具),将其添加到您的Maven构建过程中所需要的就是Java 8和Maven 3.3。
这当然是一个很短的清单。 如果您正在阅读此书并想知道“为什么X不在列表中”? 奇怪的是,这是因为我们的Maven常驻专家尚未了解它,如果您进行介绍并在评论中提及您最喜欢的Maven插件,将不胜感激。
分享此内容:
最后但并非最不重要的是此插件,用于创建.deb软件包文件,版权文件和传递性复制运行时依赖项。 跨平台且独立(不需要其他外部工具),将其添加到您的Maven构建过程中所需要的就是Java 8和Maven 3.3。
这当然是一个很短的清单。 如果您正在阅读此书并想知道“为什么X不在列表中”? 奇怪的是,这是因为我们的Maven常驻专家尚未了解它,如果您进行介绍并在评论中提及您最喜欢的Maven插件,将不胜感激。