Did*_* G. 8 java maven jacoco jacoco-maven-plugin
我正在使用 JaCoCo 代码覆盖率,但报告包括来自 jar、lib 的类。(离线检测,Maven)
我解决了离线配置的问题,因为“aspectj-maven-plugin”正在更改类文件,现在我也成功地排除了target/classes->之外的包src。感谢stackoverflow 中的这个答案。但是现在我从报告中的 jar、lib 获取类,我不知道如何排除。我在下面显示我的配置和示例
我也试过这个解决方案Exclude classes of jar files from jacoco coverage report但它对我不起作用。
<exclude>**/lib/*</exclude>
我的jacoco离线配置:
<properties>
<jacoco.version>0.8.4</jacoco.version>
<argLine></argLine>
</properties>
<dependency>
<groupId>org.jacoco</groupId>
<artifactId>org.jacoco.agent</artifactId>
<classifier>runtime</classifier>
<version>${jacoco.version}</version>
</dependency>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.version}</version>
<executions>
<execution>
<goals>
<goal>instrument</goal>
<goal>restore-instrumented-classes</goal>
<goal>report</goal>
</goals>
<configuration>
<!-- this configuration affects all goals -->
<excludes>
<exclude>*</exclude>
<exclude>com/company/rrPackage/**/*.class</exclude>
<exclude>org/**/*.class</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
万无一失的插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.15</version>
<configuration>
<testNGArtifactName>...</testNGArtifactName>
<suiteXmlFiles>
<suiteXmlFile>...</suiteXmlFile>
</suiteXmlFiles>
<skip>${skip.test}</skip>
<systemPropertyVariables>
<jacoco-agent.destfile>target/jacoco.exec</jacoco-agent.destfile>
</systemPropertyVariables>
<properties>
...
</properties>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
以及我认为我从 de jacoco:report 中的 jar 获取课程的原因。在我的 pom.xml 中,我有以下依赖项:
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.2.9</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我的课程中也有一些像这样的导入
import org.hsqldb.lib.StringUtil;
Run Code Online (Sandbox Code Playgroud)
例如:这对 pom.xml 没有依赖,但在项目类之一中使用,并且 jacoco 在报告中显示它
import javax.mail.internet.AddressException;
Run Code Online (Sandbox Code Playgroud)
我有其他具有相同行为的情况会导致相同的问题:Jacoco 在报告中显示 jar 中的那些类,如图所示
小智 6
尝试includes代替excludes. 请注意,最后需要 .class。尝试这样的事情:
<configuration>
<includes>
<include>com/company/package/**/*.class</include>
</includes>
</configuration>
Run Code Online (Sandbox Code Playgroud)
根据您的示例:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.version}</version>
<executions>
<execution>
<goals>
<goal>instrument</goal>
<goal>restore-instrumented-classes</goal>
<goal>report</goal>
</goals>
<configuration>
<!-- this configuration affects all goals -->
<includes>
<include>com/company/packageToInclude/**/*.class</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2420 次 |
| 最近记录: |