SonarQube MyBatis Plugin 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
SonarQube MyBatis Plugin 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
SonarQube MyBatis Plugin 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
开发语言 Java
操作系统 跨平台
软件类型 开源软件
所属分类 其他
开源组织
地区 国产
投 递 者 donghui2020
适用人群 未知
收录时间 2019-08-08

软件简介

SonarQube MyBatis 插件

MyBatis SonarQube Plugin :自定义规则用于检查 MyBatis Mapper XML 文件中的风险 SQL。

什么是风险 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>

MyBatis 规则

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

mybatis-rules

如何安装?

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

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

应用市场(Marketplace)

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

  • 通过搜索 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 中。

支持全局 Stmt ID 排除列表

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

stmt-id-exclude

跳过 MyBatis 扫描

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

贡献

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

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

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣
发表了资讯
2019/11/11 09:09

SonarQube MyBatis 插件 1.0.6 发布,性能优化

SonarQube MyBatis 插件 1.0.6 发布,性能优化 MyBatis SonarQube Plugin :自定义规则用于检查 Mybatis Mapper XML 文件中的风险 SQL。 本次更新内容: 性能优化:减少打开文件次数 去掉无用的 hooks sonar.apiVersion 升级到7.9 更多关于 SonarQube MyBatis 插件的详细信息,详见:SonarQube MyBatis Plugin...

3
7
发表了资讯
2019/09/29 09:25

SonarQube MyBatis 插件 1.0.5 发布,Bug 修复

SonarQube MyBatis 插件 1.0.5 发布,Bug 修复 MyBatis SonarQube Plugin :自定义规则用于检查 Mybatis Mapper XML 文件中的风险 SQL。 本次更新内容: Bug 修复:生成 reduced.xml 时,对 typeHandler,javaType,jdbcType,parameterMap,cache,cache-ref 进行处理 更新 MyBatis 版本到 3.5.2 更多关于 SonarQube MyBatis 插件的详细信息,详见:SonarQube MyBatis Plugin...

1
6
发表了资讯
2019/09/04 09:20

SonarQube MyBatis 插件 1.0.4 发布,修复了 Windows 下空指针异常

SonarQube MyBatis 插件 1.0.4 发布,修复了 Windows 下空指针异常 MyBatis SonarQube Plugin :自定义规则用于检查 Mybatis Mapper XML 文件中的风险 SQL。 本次更新内容: 修复了 Windows 下空指针异常 新增规则用于检查 select * 更多关于 SonarQube MyBatis 插件的详细信息,详见:SonarQube MyBatis Plugin...

2
5
发表了资讯
2019/08/30 10:06

SonarQube MyBatis 插件 1.0.3 发布,缩短了分析时间

SonarQube MyBatis 插件 1.0.3 发布,缩短了分析时间 MyBatis SonarQube Plugin :自定义规则用于检查 Mybatis Mapper XML 文件中的风险 SQL。 本次更新内容: 解决了几个 sonar issues 解析 MyBatis Mapper XML 文件时,不校验 dtd,缩短了分析时间 更多关于 SonarQube MyBatis 插件的详细信息,详见:SonarQube MyBatis Plugin...

0
8
发表了资讯
2019/08/22 09:29

SonarQube MyBatis 插件 1.0.2 发布,新增跳过扫描参数

MyBatis SonarQube Plugin :自定义规则用于检查 Mybatis Mapper XML 文件中的风险 SQL。 本次更新内容: 新增 sonar.mybatis.skip 参数用于跳过 mybatis 扫描 如果有时候想要跳过 MyBatis 扫描,你可以修改全局属性 sonar.mybatis.skip 为 true 或者在命令行中添加参数: -Dsonar.mybatis.skip=true 。 更多关于 SonarQube MyBatis 插件的详细信息,详见:SonarQube MyBatis Plugin...

2
9
发表了资讯
2019/08/14 17:33

SonarQube MyBatis 插件 1.0.1 发布,更新规则描述

MyBatis SonarQube Plugin :自定义规则用于检查 Mybatis Mapper XML 文件中的风险 SQL。 本次更新内容: 更新规则描述 更新 README,增加插件安装指南 推送到 SonarQube 应用市场,可以通过应用市场安装 更多关于 SonarQube MyBatis 插件的详细信息,详见:SonarQube MyBatis Plugin

0
19
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
0 评论
10 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部