完成了插件和生命周期的绑定之后,用户还可以配置插件目标的参数,进一步调整插件目标所执行的任务,以满足项目的需求。几乎所有Maven插件的目标都有一些可配置的参数。用户可以通过命令行和POM配置等方式来配置这些参数。
1. 命令行插件配置:
在日常的Maven使用中,我们会经常从命令行输入并执行Maven命令。在这种情况下,如果能够方便地更改某些插件的行为,无疑会十分方便。很多插件目标的参数都支持从命令行配置,用户可以在Maven命令中使用-D参数,并伴随一个参数键=参数值的形式,来配置插件目标的参数。
例如,maven-surefire-plugin提供了一个maven.test.skip参数,当其值为true的时候,就会跳过执行测试。于是在运行命令的时候,加上如下-D参数就能跳过测试:
$ mvn install -Dmaven.test.skip=true
参数-D是Java自带的,其功能是通过命令行设置一个Java系统属性,Maven简单地重用了该参数,在准备插件的时候检查系统属性,便实现了插件参数的配置。
2. POM中插件全局配置:
并不是所有的插件参数都适合从命令行进行配置,有些参数的值从项目创建到项目发布都不会改变,或者说很少改变,对于这种情况,在POM文件中一次性配置显然比重复在命令行输入要方便。
用户可以在声明插件的时候,对此插件进行一个全局的配置。也就是说,所有基于该插件目标的任务,都会使用这些配置。例如我们通常会需要配置maven-compiler-plugin告诉它编译Java1.5版本的源文件,生成与JVM1.5兼容的字节码文件。
1 <plugin> 2 <groupId>org.apache.maven.plugins</groupId> 3 <artifactId>maven-compiler-plugin</artifactId> 4 <configuration> 5 <source>1.5</source> 6 <target>1.5</target> 7 </configuration> 8 </plugin>
这样,不管绑定到compile阶段的maven-compiler-plugin:compile任务,还是绑定到test-compiler阶段的maven-compiler-plugin:testCompiler任务,就都能够使用该配置,基于Java1.5版本进行编译。
3. POM中插件任务配置:
......