在同一 Maven 模块中的不同插件之间共享通用配置

Share common configuration between different plugins in the same Maven module

我正在开发一个 Maven 项目,该项目在同一模块中同时使用 Surefire 和 Failsafe 插件。两个插件的配置几乎相同,除了一个元素 (classpathDependencyExcludes),如您所见。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>3.0.0-M4</version>
    <configuration>
        <skipTests>${skipTests}</skipTests>
        <forkCount>1</forkCount>
        <reuseForks>false</reuseForks>
        <argLine>-javaagent:"${project.build.directory}/openejb-javaagent-${tomee.version}.jar"</argLine>
        <workingDirectory>${project.build.directory}</workingDirectory>
    </configuration>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <version>3.0.0-M4</version>
    <configuration>
        <skipTests>${skipTests}</skipTests>
        <forkCount>1</forkCount>
        <reuseForks>false</reuseForks>
        <argLine>-javaagent:"${project.build.directory}/openejb-javaagent-${tomee.version}.jar"</argLine>
        <workingDirectory>${project.build.directory}</workingDirectory>
        <classpathDependencyExcludes>
            <classpathDependencyExclude>javax:javaee-api</classpathDependencyExclude>
        </classpathDependencyExcludes>
    </configuration>
</plugin>

我想知道是否有一种方法可以通过一次而不是多次记录来共享两个插件之间配置的公共部分。如果不是,在两种配置相同的假设下,是否可能?

首先,您不需要显式设置所有属性。 skipTests已经有了${skipTests}的值,不用再重复了。 forkCount 已有默认值 1。

其他一些属性可以在 <properties> 部分中设置,例如 reuseForksargLine

这样就没什么好担心的了。