Jacoco 如何正确排除包
Jacoco how to correctly exclude package
我正在使用 Jacoco Maven 插件版本 0.8.1(使用 Java 8 / Maven 3.1.0)。
无法让 Jacoco 使用路径排除项。
我想排除这些软件包:
my.package.model
my.package.exception
我试过的:
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.1</version>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
<configuration>
<excludes>
<exclude>my.package.model</exclude>
<exclude>my.package.exception</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.1</version>
<configuration>
<excludes>
<exclude>my.package.model</exclude>
<exclude>my.package.exception</exclude>
</excludes>
</configuration>
<reportSets>
<reportSet>
<reports>
<report>report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
还有(对于 excludes
部分):
<excludes>
<exclude>my.package.model**</exclude>
<exclude>my.package.exception**</exclude>
</excludes>
<excludes>
<exclude>my/package/model/**/*</exclude>
<exclude>my/package/exception/**/*</exclude>
</excludes>
<excludes>
<exclude>*/my/package/model/**/*</exclude>
<exclude>*/my/package/exception/**/*</exclude>
</excludes>
<excludes>
<exclude>**/my/package/model/**/*</exclude>
<exclude>**/my/package/exception/**/*</exclude>
</excludes>
<excludes>
<exclude>**/my/package/model/**</exclude>
<exclude>**/my/package/exception/**</exclude>
</excludes>
<excludes>
<exclude>**/my/package/model/*</exclude>
<exclude>**/my/package/exception/*</exclude>
</excludes>
<excludes>
<exclude>**/model/*</exclude>
<exclude>**/exception/*</exclude>
</excludes>
<excludes>
<exclude>**/model**</exclude>
<exclude>**/exception**</exclude>
</excludes>
无法从最终报告中删除这些包...令人沮丧。
我读了:
- Jacoco exclude classes
- Jacoco exclude classes from report
...
没有任何效果。
有什么想法吗?
我有它并且有效(请注意 excludes
在 execution/configuration
中,所有内容都在 pluginManagement
中):
<pluginManagement>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>pre-integration-test</id>
<goals>
<goal>prepare-agent-integration</goal>
</goals>
<configuration>
<destFile>${project.build.directory}/integration-coverage-reports/jacoco-it.exec</destFile>
<excludes>
<exclude>weblogic/*</exclude>
</excludes>
</configuration>
</execution>
<execution>
<id>post-integration-test</id>
<phase>post-integration-test</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<dataFile>${project.build.directory}/integration-coverage-reports/jacoco-it.exec</dataFile>
<outputDirectory>${project.reporting.outputDirectory}/jacoco-it</outputDirectory>
<excludes>
<exclude>my/company/package/db/entity/**/*.class</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
根据您分享的示例,POM 文件中的此更改应该有效:
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.1</version>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
<configuration>
<excludes>
<exclude>my/package/model/**/*.class</exclude>
<exclude>my/package/exception/**/*.class</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.1</version>
<configuration>
<excludes>
<exclude>my/package/model/**/*.class</exclude>
<exclude>my/package/exception/**/*.class</exclude>
</excludes>
</configuration>
<reportSets>
<reportSet>
<reports>
<report>report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
我通常将 prepare-agent
目标和 report
目标放在同一个插件中。这有助于我将排除包仅放在一个部分下。这是我的 pom 文件的样子:
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.1</version>
<configuration>
<excludes>
<exclude>my/package/model/**/*.class</exclude>
<exclude>my/package/exception/**/*.class</exclude>
</excludes>
</configuration>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>post-unit-test</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
我正在使用 Jacoco Maven 插件版本 0.8.1(使用 Java 8 / Maven 3.1.0)。 无法让 Jacoco 使用路径排除项。 我想排除这些软件包:
my.package.model
my.package.exception
我试过的:
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.1</version>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
<configuration>
<excludes>
<exclude>my.package.model</exclude>
<exclude>my.package.exception</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.1</version>
<configuration>
<excludes>
<exclude>my.package.model</exclude>
<exclude>my.package.exception</exclude>
</excludes>
</configuration>
<reportSets>
<reportSet>
<reports>
<report>report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
还有(对于 excludes
部分):
<excludes>
<exclude>my.package.model**</exclude>
<exclude>my.package.exception**</exclude>
</excludes>
<excludes>
<exclude>my/package/model/**/*</exclude>
<exclude>my/package/exception/**/*</exclude>
</excludes>
<excludes>
<exclude>*/my/package/model/**/*</exclude>
<exclude>*/my/package/exception/**/*</exclude>
</excludes>
<excludes>
<exclude>**/my/package/model/**/*</exclude>
<exclude>**/my/package/exception/**/*</exclude>
</excludes>
<excludes>
<exclude>**/my/package/model/**</exclude>
<exclude>**/my/package/exception/**</exclude>
</excludes>
<excludes>
<exclude>**/my/package/model/*</exclude>
<exclude>**/my/package/exception/*</exclude>
</excludes>
<excludes>
<exclude>**/model/*</exclude>
<exclude>**/exception/*</exclude>
</excludes>
<excludes>
<exclude>**/model**</exclude>
<exclude>**/exception**</exclude>
</excludes>
无法从最终报告中删除这些包...令人沮丧。
我读了:
- Jacoco exclude classes
- Jacoco exclude classes from report ...
没有任何效果。
有什么想法吗?
我有它并且有效(请注意 excludes
在 execution/configuration
中,所有内容都在 pluginManagement
中):
<pluginManagement>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>pre-integration-test</id>
<goals>
<goal>prepare-agent-integration</goal>
</goals>
<configuration>
<destFile>${project.build.directory}/integration-coverage-reports/jacoco-it.exec</destFile>
<excludes>
<exclude>weblogic/*</exclude>
</excludes>
</configuration>
</execution>
<execution>
<id>post-integration-test</id>
<phase>post-integration-test</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<dataFile>${project.build.directory}/integration-coverage-reports/jacoco-it.exec</dataFile>
<outputDirectory>${project.reporting.outputDirectory}/jacoco-it</outputDirectory>
<excludes>
<exclude>my/company/package/db/entity/**/*.class</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
根据您分享的示例,POM 文件中的此更改应该有效:
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.1</version>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
<configuration>
<excludes>
<exclude>my/package/model/**/*.class</exclude>
<exclude>my/package/exception/**/*.class</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.1</version>
<configuration>
<excludes>
<exclude>my/package/model/**/*.class</exclude>
<exclude>my/package/exception/**/*.class</exclude>
</excludes>
</configuration>
<reportSets>
<reportSet>
<reports>
<report>report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
我通常将 prepare-agent
目标和 report
目标放在同一个插件中。这有助于我将排除包仅放在一个部分下。这是我的 pom 文件的样子:
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.1</version>
<configuration>
<excludes>
<exclude>my/package/model/**/*.class</exclude>
<exclude>my/package/exception/**/*.class</exclude>
</excludes>
</configuration>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>post-unit-test</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>