插件目标像 Java 中的函数一样,执行相应的功能,并且还有参数,这些参数的具体值,我们可以配置,传递给插件目标。
命令行插件配置
命令行插件配置算是比较经典的配置手段了,在 Java 中可以使用 -D
参数配置系统属性。Maven 简单的重用了该参数,在检查插件的时候检查系统属性,实现了插件参数的配置。
例如:maven-compiler-plugin
插件就提供了一个 maven.test.skip
的系统属性,通过配置是否跳过测试。以下是该插件 testCompile
目标的 skip 参数详细信息。
skip
User property: maven.test.skip
Set this to 'true' to bypass compilation of test sources. Its use is NOT
RECOMMENDED, but quite convenient on occasion.
可以看到该参数可以使用 maven.test.skip
,因此可以编写命令 maven install -Dmaven.test.skip=true
用来跳过测试。
POM 插件配置
对于一些固定常用的参数,可以直接在 pom 文件中配置,使用 configuration
配置 参数,如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.1</version>
<configuration>
<warSourceExcludes>WEB-INF/classes</warSourceExcludes>
</configuration>
</plugin>
如果需要插件在不同声明周期执行相同的目标,但是执行的参数不一样,就需要另外配置。
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<executions>
<execution>
<id>diy-compile</id>
<phase>install</phase>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
…
</configuration>
</execution>
<execution>
<id>diy-test</id>
<phase>verify</phase>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
…
</configuration>
</execution>
</executions>
</plugin>
</plugins>
如上同一插件的同一目标绑定了不同的声明周期阶段,具体的参数配置只需要在各自的 configuration
配置即可。