我有多个配置文件的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>
)?
答案 0 :(得分:0)
当前,您在每个执行中都有配置,这意味着如果您检查有效pom,则每个执行配置文件的这些配置都会保留。
我认为您需要的是在插件级别上具有要覆盖的配置。