覆盖配置文件中的插件配置

时间:2018-06-20 11:03:25

标签: maven pom.xml maven-plugin jacoco jacoco-maven-plugin

我有多个配置文件的Maven项目。在一个配置文件中,我具有插件配置(jacoco-maven-plugin来强制进行测试覆盖):

<plugin>
  <groupId>org.jacoco</groupId>
  <artifactId>jacoco-maven-plugin</artifactId>
  <version>0.8.0</version>
  <executions>
    <execution>
      <configuration>
        <rules>
          <rule>
            <limits>
              <limit>
                <counter>BRANCH</counter>
                <value>COVEREDRATIO</value>
                <minimum>0.50</minimum>
              </limit>
              <!-- many other limits here -->
            </limits>
          </rule>
        </rules>
      </configuration>
    </execution>
  </executions>
</plugin>

但是在Windows上,我想跳过一些测试并更改覆盖范围限制,我正在尝试这样做:

<profile>
  <id>windows</id>
  <activation>
    <os>
      <family>windows</family>
    </os>
  </activation>
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <configuration combine.children="append">
            <excludes>
              <exlude>com.example.SomeTest</exclude>
            </exclude>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.0</version>
        <executions>
          <execution>
            <configuration>
              <rules>
                <rule>
                  <limits>
                    <limit>
                      <counter>BRANCH</counter>
                      <value>COVEREDRATIO</value>
                      <minimum>0.49</minimum>
                    </limit>
                  </limits>
                </rule>
              </rules>
              <excludes>
                <exlude>com.example.SomeTest</exclude>
              </exclude>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</profile>

此测试com.exaple.SomeTest现在不在Windows上执行,并且没有从覆盖率报告中排除,但是jacoco-maven-plugin并没有改变:它不影响插件配置,我也尝试使用{{1} }和<limit combine.children="override">而不是<limit combine.children="append">

如何在配置文件的插件配置中正确地仅覆盖一个限制(<limit>)?

1 个答案:

答案 0 :(得分:0)

当前,您在每个执行中都有配置,这意味着如果您检查有效pom,则每个执行配置文件的这些配置都会保留。

我认为您需要的是在插件级别上具有要覆盖的配置。