我正在使用JaCoCo,它正在考虑Lombok生成的方法(在字节码中生成,而不是源代码中的跟踪)。 如何配置JaCoCo忽略它们?
答案 0 :(得分:17)
从jacoco 0.8.0和lombok 1.16.14开始,还有另一种排除lombok生成的类的方法,请参见:https://www.rainerhahnekamp.com/en/ignoring-lombok-code-in-jacoco/
幸运的是,从版本0.8.0开始,Jacoco可以检测,识别和忽略Lombok生成的代码。作为开发人员,您唯一要做的就是在目录的根目录中创建一个名为lombok.config
的文件并设置以下标志:
lombok.addLombokGeneratedAnnotation = true
这会将注释lombok.@Generated
添加到相关的方法,类和字段。 Jacoco知道此注释,将忽略该注释的代码。
请记住,您至少需要Jacoco的0.8.0版本和Lombok的v1.16.14版本。
答案 1 :(得分:2)
使用jacoco提供的排除标记。
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.4.201502262128</version>
<configuration>
<excludes>
<exclude>**/config/**</exclude>
<exclude>**/model/**</exclude>
<exclude>**/item/**</exclude>
</excludes>
</configuration>
答案 2 :(得分:0)
正如已经回答的那样,在项目的根目录中添加lombok.config
可以解决问题,但是如果您正在使用Maven并希望避免将lombok.config
添加到存储库中,您可以使用Apache Maven AntRun Plugin以便在构建时自动生成它:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>lombok-config</id>
<phase>initialize</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<propertyfile file="lombok.config">
<entry key="config.stopBubbling" value="true" />
<entry key="lombok.addLombokGeneratedAnnotation" value="true" />
</propertyfile>
</target>
</configuration>
<?m2e execute?> <!-- Optional: enable this execution in Eclipse -->
</execution>
</executions>
</plugin>
</plugins>
别忘了指示您的SCM忽略此自动生成的文件。