【问题标题】:Share common configuration between different plugins in the same Maven module在同一个 Maven 模块中的不同插件之间共享通用配置
【发布时间】:2020-01-02 16:52:39
【问题描述】:

我正在开发一个 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>

我想知道是否有办法在两个插件之间共享配置的公共部分,只需写下一次而不是多次。如果不是,在假设两种配置相同的情况下,这可能吗?

【问题讨论】:

  • 找不到办法。您可以将所有属性外部化,但配置对象本身是插件的包含属性。我会挖掘更多.. 最坏的情况,你有机会写一个插件:-)

标签: java maven maven-plugin maven-surefire-plugin maven-failsafe-plugin


【解决方案1】:

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

其他一些属性可以在&lt;properties&gt; 部分中设置,例如reuseForks 和argLine。

那么就没什么好担心的了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    • 2023-03-08
    • 2014-02-16
    • 2018-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多