maven插件编写
最近,我花了很多时间为Maven编写插件或在其中工作。 它们简单,有趣且有趣。
我以为我会分享一些技巧,使编写它们时的生活更轻松。
提示1:将任务与Mojo分开
最初,您将把mojo的所有代码放入mojo的类(即,扩展AbstractMojo的类)中。 而是考虑将任务分离出来,并为mojo提供最少的填充代码。 这将:
- 使单元测试更加容易。
- 意味着您可以轻松地与其他工具集成,例如Ant。
- 使在mojo中转换简单数据类型变得更加容易,从而为您的任务转换更复杂的类型(例如,将字符串转换为文件)。
- 将异常翻译与任务分开。
技巧2:考虑将配置外部化
通常,您可以使用POM中的元素配置插件。 对于简单的情况,这很好。 当您有大量的配置项目集或可能有多个配置文件的地方时,这将导致冗长且难以理解的POM。 您可以按照组装插件的示例进行操作,并具有用于放置config的标准化目录,例如src / main / myplugin / config-profile-1.xml。
秘诀3:将Mojo与相匹配
考虑一下您可能希望mojo进入哪个阶段。如果它正在做的事情应该拆分为跨阶段,则将mojo拆分并绑定到适当的阶段。 这将使测试和维护变得更加容易。
提示4:不要重复耗时的工作
您的mojo将在相同源代码和配置的较小变体上多次运行。 每次执行时,它都会做很多密集的工作吗? 我使用的Mojo每次运行文件时都将其解压缩,方法是将邮政编码更改为仅通过检查文件修改时间来刷新文件,该任务从一分钟的执行时间缩短到不到10秒。
提示5:计划测试
最初,您可能正在编写mojo并在要使用它的第一个项目上进行手动测试。 这将是一个漫长的测试周期,并导致不可靠的mojo。 将任务与mojo分开可以使测试任务变得容易,但是您需要对mojo进行一些烟雾测试。 Mojo中的错误可能很难让用户注意到,因为有一种趋势认为大多数Mojo经过了良好的测试和可靠。
技巧6:考虑如何为Mojo提供文档和帮助
IDE和Maven在这里可能无济于事。 该配置项是什么意思? 我可以看个例子吗? 解决方案是提供一个“帮助” mojo和一个可选的Maven站点。 例如,如果您执行“ mvn assembly:help”或“ mvn surefire:help -Ddetail = true -Dgoal = test”,则会看到帮助。
参考: Java,* NIX,我们的JCG合作伙伴 Alex Collins 编写Maven插件的技巧 ,测试,性能,电子游戏技术等博客。
翻译自: https://www.javacodegeeks.com/2012/12/tips-for-writing-maven-plugins.html
maven插件编写