【项目实战】自定义设置Sonar的规则,要求DevOps工具链SonarQube只扫描指定模块

一、背景

开发微服务项目,很多会基于网络上现成开源的微服务框架进行二开,公司有单元测试覆盖率的要求,往往会使用SonarQube 来实现扫描代码的单元测试覆盖率,但是因为网络上现成开源的微服务框架很大部分是已经现成的代码,因此补充单元测试工作会很痛苦,于是,可以自定义设置Sonar的规则,要求SonarQube 只扫描指定模块。

二、设置只扫描指定模块

使用 SonarQube 分析时,使用 -Dsonar.inclusions 参数来包含特定文件或目录。
该参数指定要包含在分析中的逗号分隔的文件模式列表。

请注意,sonar.inclusions 参数仅在分析阶段使用,不影响构建过程。
此外,如果未指定任何包含项,则 SonarQube 默认会分析项目中的所有文件。

参考如下:

-Dsonar.inclusions="**/shop-common/**,*/target/classes/**,"

同样排除指定目录:

-Dsonar.exclusions="**/shop-common/**,*/target/classes/**,*/src/test/**,**/entity/**,**/enums/**,**/config/**,**/vo/*.java,**/dto/*.java,**/*Constants.java,**/*Constant.java,**/*Dto.java,**/*Do.java,**/*Po.java,**/*Vo.java,**/*Config.java,**/*Exception.java,**/*Convert.java,**/*Enum,**/*Application,**/*Fallback.java,**/constant/**.java,**/config/*.java,**/util/*.java"

例如,要包含 src/main/java 目录及其子目录中的所有 Java 文件,可以使用以下命令:

mvn sonar:sonar -Dsonar.inclusions=src/main/java/**/*.java

这将运行 SonarQube 分析并仅包含指定的 Java 文件进行分析。

三、实战使用 -Dsonar.inclusions

完成之后,需要配置 一下jenkins的流水线脚本(Pipeline script),
具体位置如下

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wstever/article/details/130270798
今日推荐