我正在一个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>
部分中设置其他一些属性,例如reuseForks
和argLine
。
然后几乎没有什么可担心的。