5、更好的错误和完整性报告
Maven 3改善了错误报告,它会在错误报告中提供指向Maven Wiki页面的链接,这样你可以查看更全面的错误描述和可能的原因,如图1所示,例如,当我未指定子模块的父版本时,运行子模块将会获得一条错误消息。注意:在Maven 3.1中将不再需要为子模块指定父POM版本号。
▲图1 Maven 3.0错误报告
6、插件扩展点
在Maven 3中,你可以挂上不同的扩展点以便修改插件行为,在Maven 2中你只能直接扩展插件,这个功能是Maven开发团队从Eclipse借来的理念,例如,你可以定义一个扩展点修改web.xml由WAR插件来处理。
7、Mixin
Mixin允许你使用参数化的POM片段来组成POM,而不是继承,但这个功能需要等到Maven 3.1发布才能使用,这些Mixin将被部署到仓库,然后使用标准的坐标进行引用,例如,如果你想使用我的项目的发布过程,在Maven 2时代,你必须继承我的项目的Maven POM,因为Mixin是由插件和配置组成的,它们是可以参数化的,你可以用它们组成你的POM。
8、Maven Shell
Maven Shell是Maven的命令行接口,它可以提高你的生成速度,因为它可以缓存解析过的POM,避免重复调用Maven的启动成本,它也支持和Maven Archetype集成,并提供Nexus整合,它包括了一个内置的帮助系统,在Mac OS X上,它提供了Growl支持,Maven Shell不属于Maven发行包的一部分,需要单独从这里下载。
在操作系统命令提示符后输入mvnsh即可启动Maven Shell,输入help可以查看Maven Shell支持的所有功能,如图2所示。
▲图2 Maven Shell功能