基本上所有主要的Maven插件都来自Apache和Codehaus。由于Maven本身是属于Apache软件基金会的,因此它有很多官方的插件,每天都有成千上万的Maven用户在使用这些插件,它们具有非常好的稳定性。详细的列表可以在这个地址得到:http://maven.apache.org/plugins/index.html,单击某个插件的链接便可以得到进一步的信息。所有官方插件能在这里下载:http://repo1.maven.org/maven2/org/apache/maven/plugins/。
除了Apache上的官方插件之外,托管于Codehaus上的Mojo项目也提供了大量了Maven插件,详细的列表可以访问:http://mojo.codehaus.org/plugins.html。需要注意的是,这些插件的文档和可靠性相对较差,在使用时,如果遇到问题,往往只能自己去看源代码。所有Codehaus的Maven插件能在这里下载:http://repository.codehaus.org/org/codehaus/mojo/。
由于上述两个站点提供的插件非常多,而实际使用中常用的插件远不会是这个数量,因此附录C归纳了一些比较常用的插件。
虽然并非所有插件都提供了完善的文档,但一些核心插件的文档还是非常丰富的。以maven-surefire-plugin为例,访问http://maven.apache.org/plugins/maven-surefire-plugin/可以看到该插件的简要介绍、包含的目标、使用介绍、FAQ以及很多实例,如图7-3所示。
图7-3 maven-surefire-plugin的文档页面
一般来说,通过阅读插件文档中的使用介绍和实例,就应该能够在自己的项目中很好地使用该插件。但当我们想了解非常细节的目标参数时,就需要进一步访问该插件每个目标的文档。以maven-surefire-plugin为例(见第7.5.1节),可以通过在命令行传入maven.test.skip参数来跳过测试执行,而执行测试的插件目标是surefire:test,访问其文档:http://maven.apache.org/plugins/maven-surefire-plugin/test-mojo.html,可以找到目标参数skip,如图7-4所示。
图7-4 maven-surefire-plugin:test的skip参数
文档详细解释了该参数的作用、类型等信息。基于该信息,用户可以在POM中配置maven-surefire-plugin的skip参数为true来跳过测试。这个时候读者可能会不理解了,之前在命令行传入的参数不是maven.test.skip吗?的确如此,虽然对于该插件目标的作用是一样的,但从命令行传入的参数确实不同于该插件目标的参数名称。命令行参数是由该插件参数的表达式(Expression)决定的。从图7-4中能够看到,surefire:test skip参数的表达式为${maven.test.skip},它表示可以在命令行以-Dmaven.test.skip=true的方式配置该目标。并不是所有插件目标参数都有表达式,也就是说,一些插件目标参数只能在POM中配置。