SonarQube MyBatis Plugin SonarQube MyBatis 插件开源项目

我要开发同款
匿名用户2019年08月08日
42阅读
开发技术Java
所属分类其他
授权协议Apache

作品详情

SonarQubeMyBatis插件

MyBatisSonarQubePlugin:自定义规则用于检查MyBatisMapperXML文件中的风险SQL。

什么是风险SQL?

风险SQL是指在mybatismapper文件中,有一些动态SQL,例如 <iftest=""></if> 元素,如果MapperXML中的SQL语句中的所有参数为null,那么SQL会有比较大的风险。

示例如下:

DELETEFROMtable_nameWHERE1=1<iftest="startTime!=null">ANDstart_time<![CDATA[=]]>#{startTime}</if><iftest="endTime!=null">ANDend_time<![CDATA[=]]>#{endTime}</if>MyBatis规则

有7个内置的规则,select语句有3个规则,update以及delete语句分别有2个规则。

如何安装?

在SonarQube中安装插件有两种选择:

应用市场(Marketplace)-自动从SonarQubeUI安装插件。手动安装-如果您的SonarQube实例无法访问互联网,请将使用此方法。应用市场(Marketplace)

如果您能够访问互联网,并且您的用户具有全局权限“管理系统”的权限,则可以访问"配置>应用市场"。

通过搜索 mybatis 找到该插件点击安装然后等待下载完成

下载完成后,将使用“重启”按钮重新启动SonarQube实例。

手动安装

该插件可以从 githubrelease 下载。

将下载的jar放到 $SONARQUBE_HOME/extensions/plugins 目录,并移除该插件的旧版本。

一旦完成,您将需要重新启动SonarQube服务器。

如何使用?

使用maven构建命令的示例如下:

mvncleancompile-U-Dmaven.test.skip=true-Dmaven.javadoc.skip=truesonar:sonar-Dsonar.host.url=https://127.0.0.1:9000/-Dsonar.projectKey=demo-Dsonar.projectName=demo-Dsonar.sourceEncoding=UTF-8-Dsonar.sources=.-Dsonar.inclusions=src/main/**-Dsonar.exclusions==src/main/webapp/**

要想分析mybatismapper文件, src/main/resources 目录必须在 sonar.sources 中。

支持全局StmtID排除列表

对于一些特殊语句的问题,要想忽略它们,可以将附带namespace的statementid放入全局stmtid排除列表。

跳过MyBatis扫描

如果有时候想要跳过MyBatis扫描,你可以修改全局属性 sonar.mybatis.skip 为 true 或者在命令行中添加参数:-Dsonar.mybatis.skip=true 。

贡献

可以在 https://github.com/donhui/sonar-mybatis/issues 提交bug和新功能请求。

或者可以提交pullrequests用于修复bug或提交新功能,欢迎任何形式的贡献。

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论