利用Sonar定制自定义扫描规则

上有3种方法可以自定义soanr的代码校验规则:

  • 直接在sonar的web接口中增加XPath规则;
  • 通过插件的功能来增加自定义规则,比如checkstyle,pmd等插件是允许自定义规则的;
  • 通过新增一个代码分析器来实现自定义规则;

sonar官方推荐的方式是使用最简单的XPath方式来增加自定义规则,如果语言太复杂或者XPath无法查询其结构的,再使用自定义插件的方式。

sonar为大部分流行的语言(C, C#, C++, Cobol, Flex, JavaScript, PL/I, PL/SQL, Python and VB.NET)提供了一个简洁的方式来增加代码规则。这些新增规则必须使用XPath来实现,这样的话语言的每一部分都可以映射到Abstract Syntax Tree(AST)。对于每一种语言,SSLR Toolkit 工具提供了代码转AST的功能。

原文地址:https://www.cnblogs.com/chengkanghua/p/10710932.html

时间: 2024-08-30 03:54:13

利用Sonar定制自定义扫描规则的相关文章

利用IK分词器,自定义分词规则

IK分词源码下载地址:https://code.google.com/p/ik-analyzer/downloads/list lucene源码下载地址:http://www.eu.apache.org/dist/lucene/java/ 下载IK分词源码后,运行出现错误提示: Analyzer cannot be resolved to a type TokenStream cannot be resolved to a type OffsetAttribute cannot be resol

ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php

去掉 URL 中的 index.php ThinkPHP 作为 PHP 框架,是单一入口的,那么其原始的 URL 便不是那么友好.但 ThinkPHP 提供了各种机制来定制需要的 URL 格式,配合 Apache .htaccess 文件,更是可以定制出人性化的更利于 SEO 的 URL 地址来. .htaccess文件是 Apache 服务器中的一个配置文件,它负责相关目录下的网页配置.我们可以利用 .htaccess 文件的 Rewrite 规则来隐藏掉 ThinkPHP URL 中的 in

利用 Project Lombok 自定义 AST 转换

转自 http://www.ibm.com/developerworks/cn/java/j-lombok/ 利用 Project Lombok 自定义 AST 转换 何时以及如何为自定义代码生成扩展 Lombok Alex Ruiz 在本文中介绍了 Project Lombok,探讨了它的一些独特的编程特色,包括注释驱动代码生成,以及简洁.紧凑.可读的代码.然后,他会提示大家关注 Lombok 更有价值的用途:利用自定义 AST(Abstract Syntax Tree,抽象语法树)转换来对其

vs2017 自定义生成规则 错误 MSB3721 命令 ”已退出,返回代码为 1。

错误 MSB3721 命令 ”已退出,返回代码为 1. 解决办法:去掉yasm复选框,改为masm vs2017 自定义生成规则-编译汇编代码 VC++调用yasm编译汇编代码有三种方法:Custom Build..rules文件..targets文件. 1 Custom Build Custom Build的优点是适用面广,vc6~vc2015都能使用:缺点是修改命令行参数稍显麻烦. 图1.19 Outputs是编译*.asm后的输出文件,连接时会用到此文件.上图的设置为"(IntDir)$(

Struts2系列:(21)在Struts中自定义验证规则

1.Struts实现验证的过程 通过对Struts源代码的学习,总结一下Struts如何实现验证. 在struts-default.xml文件中,有validator和workflow两个拦截器. <interceptor name="validation" class="org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor"/> <interceptor

Spring Boot实战之定制URL匹配规则

本文首发于个人网站:Spring Boot实战之定制URL匹配规则 构建web应用程序时,并不是所有的URL请求都遵循默认的规则.有时,我们希望RESTful URL匹配的时候包含定界符".",这种情况在Spring中可以称之为"定界符定义的格式":有时,我们希望识别斜杠的存在.Spring提供了接口供开发人员按照需求定制. 在之前的几篇文章中,可以通过WebConfiguration类来定制程序中的过滤器.格式化工具等等,同样得,也可以在这个类中用类似的办法配置&

shiro 实现自定义权限规则校验

<span style="font-family: Arial, Helvetica, sans-serif;">在系统中使用shiro进行权限管理,当用户访问没有权限的资源时会跳转到指定的登录url.</span> 但是如果系统中支持手机app,手机访问时没有使用session进行登录凭证管理,而是使用token,有两种解决方法: 1:支持手机客户端访问的资源在权限配置中配置成anon 2:实现自定义认证拦截器,对用户请求资源进行认证 显然第一种方法不适用,这

thinkphp5中上传文件自定义命名规则

在thinkphp5中:有上传文件一章: https://www.kancloud.cn/manual/thinkphp5/155159 如果对于文件上传这一章,不了解,就先看下面的,再来看这一段. 下面我们自定义两个规则. 1.datea规则,年月/时分秒.(3位随机数) /201706/164030789 2.ymmd5规则,年/月/md5 修改框架文件:thinkphp/library/think/File.php. 增加两个case: case 'datea': case 'ymmd5'

C# 利用PrintDocument定制打印单据

本文是利用PrintDocument定制打印单据的小例子. 涉及知识点: PrintDocument :从 Windows 窗体应用程序打印时,定义一种可重用的可发送到打印机上的对象. PrintPreviewControl :表示 Windows 窗体应用程序打印预览的原始预览部分,没有任何对话框或按钮. Graphics :GDI+绘图对象 PageSettings:指定应用于单页打印的设置 DefaultPageSettings:PrintDocument的属性 PrintPage事件:P