SonarQube支持部分Lombok注释(getters - setters等)。但是,它仍然不支持@EqualsAndHashCode
和@ToString
方法。
我在StackOverflow和其他网站上尝试了所有答案。但是,它在我的情况下不起作用。
有没有办法说SonarQube或Jacoco,它们不会分析这些注释,或者不将它们包含在测试覆盖率结果中,或者解决这个问题的方法是什么?
答案 0 :(得分:7)
从Jacoco 0.7.10开始,现在可以通过在lombok.config中将标志lombok.addLombokGeneratedAnnotation
设置为true
来排除Lombok生成的代码。
更多关于http://www.rainerhahnekamp.com/ignoring-lombok-code-in-jacoco
答案 1 :(得分:4)
让我们把SonarQube排除在等式之外,因为它只是揭示问题的工具。
JaCoCo通过检测字节码来工作:这意味着它在字节码中的特定位置添加了一些指令(探测器),并查看在测试运行期间哪些探测器被命中。
在它的一边,Lombok在字节码级别生成方法。 然后,这些生成的方法由JaCoCo检测,并且不在您的测试范围内。
所以你必须配置JaCoCo来忽略这些方法,或者在lombok发挥作用之前对仪器类进行配置,或者为这些生成的方法编写测试。
答案 2 :(得分:3)
您可以configure Lombok生成@SuppressFBWarnings
生成的代码。可以,您可以配置JaCoCo来监听该批注。很遗憾,@javax.annotation.Generated
有保留来源,因此对您没用。
披露:我是龙目岛开发者