同步操作将从 donghui/sonar-mybatis 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
MyBatis SonarQube Plugin :自定义规则用于检查 MyBatis Mapper XML 文件中的风险 SQL。
风险 SQL 是指在 mybatis mapper 文件中,有一些动态 SQL,例如 <if test=""></if>
元素,
如果 Mapper XML 中的 SQL 语句中的所有参数为 null,那么 SQL 会有比较大的风险。
示例如下:
DELETE FROM table_name
WHERE 1=1
<if test="startTime != null">
AND start_time <![CDATA[=]]> #{startTime}
</if>
<if test="endTime != null">
AND end_time <![CDATA[=]]> #{endTime}
</if>
有7个内置的规则,select 语句有3个规则,update 以及 delete 语句分别有2个规则。
在SonarQube中安装插件有两种选择:
如果您能够访问互联网,并且您的用户具有全局权限“管理系统”的权限,则可以访问"配置 > 应用市场"。
mybatis
找到该插件下载完成后,将使用“重启”按钮重新启动 SonarQube 实例。
该插件可以从 github release 下载。
将下载的 jar 放到 $SONARQUBE_HOME/extensions/plugins
目录,并移除该插件的旧版本。
一旦完成,您将需要重新启动 SonarQube 服务器。
使用 maven 构建命令的示例如下:
mvn clean compile -U -Dmaven.test.skip=true -Dmaven.javadoc.skip=true sonar:sonar -Dsonar.host.url=http://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/**
要想分析 mybatis mapper 文件, src/main/resources
目录必须在 sonar.sources
中。
对于一些特殊语句的问题,要想忽略它们,可以将附带 namespace 的 statement id 放入全局 stmt id 排除列表。
如果有时候想要跳过 MyBatis 扫描,你可以修改全局属性 sonar.mybatis.skip
为 true
或者在命令行中添加参数:
-Dsonar.mybatis.skip=true
。
可以在 https://github.com/donhui/sonar-mybatis/issues 提交 bug 和新功能请求。
或者可以提交 pull requests 用于修复 bug 或提交新功能,欢迎任何形式的贡献。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。