1、https://segmentfault.com/a/1190000008659108

2、https://docs.sonarqube.org/display/DEV/Adding+Coding+Rules

3、https://docs.sonarqube.org/display/DEV/Adding+Coding+Rules+using+Java

4、https://docs.sonarqube.org/display/PLUG/Writing+Custom+Java+Rules+101

有两种方式可以扩展代码规则:但是Java只支持方式1

Writing coding rules in Java is a six-step process:

Put a dependency on the API of the language plugin for which you are writing coding rules.

Create as many custom rules as required

Generate the SonarQube plugin (jar file)

Place this jar file in the SONARQUBE_HOME/extensions/plugins directory

Restart SonarQube server

下面详述这个过程:

1、把项目拉到本地

git clone git@github.com:shengulong/sonar-custom-rules-examples.git

2、里面有cobol/java/javascript/php/rpg的自定义规则,我们只关注java的

3、使用intellij idea打开项目java-custom-rules(github上,我已经调试通过)。这是一个maven项目的模板。

4、修改下pom文件:sonar的版本以及对应的java插件版本,这样sonar6.0以上版本都可以用这个插件

1

2

3 6.0

4

6

7 4.5.0.8398

8 1.21

9 2.6.2

10

5、修改下文件,因为最初下载的报编译错误

a、注释掉//import org.sonar.plugins.java.Java;

b、修改函数,主要修改成下文的java字段,因为我们编辑的java规则插件

1 @Override2 public voiddefine(Context context) {3 NewRepository repository =context4 .createRepository(REPOSITORY_KEY, "java")5 .setName("MyCompany Custom Repository");6

7 List checks =RulesList.getChecks();8 new RulesDefinitionAnnotationLoader().load(repository, Iterables.toArray(checks, Class.class));9

10 for(Class ruleClass : checks) {11 newRule(ruleClass, repository);12 }13 repository.done();14 }

6、其他修改参照github代码提交记录,然后按照https://docs.sonarqube.org/display/PLUG/Writing+Custom+Java+Rules+101的步骤操作即可,来张最终效果图:

sonarqube如何导入规则_sonar如何添加自定义JAVA规则相关推荐

  1. java 规则引擎_【java规则引擎】java规则引擎搭建开发环境(示例代码)

    Drools and jBPM consist out of several projects:(Drools软件包提供的几个部分的功能) ------------------------------ ...

  2. Java规则引擎工作原理及其应用

    摘 要 Java规则引擎是一种嵌入在Java程序中的组件,它的任务是把当前提交给引擎的Java数据对象与加载在引擎中的业务规则进行测试和比对,激活那些符合当前数据状态下的业务规则,根据业务规则中声明的 ...

  3. pmd java规则_4. PMD 使用,编译和自定义规则

    一 PMD简介 PMD是一款代码静态检查工具,可以检查出很多代码中潜在的bug以及让人感到疑惑的代码,具体大家可以百度下. 二 PMD源代码下载 下载地址: 需要注意的是注意选择branch,一般选择 ...

  4. Java规则引擎Drools急速入门

    文章目录 1.Drools规则引擎简介 2.Drools API开发步骤 3.SpringBoot整合Drools案例 4.Drools基础语法 5.Drools条件语法部分 6.Drools结果操作 ...

  5. [Drools]JAVA规则引擎 -- Drools

    Drools是一个基于java的规则引擎,开源的,可以将复杂多变的规则从硬编码中解放出来,以规则脚本的形式存放在文件中,使得规则的变更不需要修正代码重启机器就可以立即在线上环境生效. 本文所使用的de ...

  6. 用Php设置Iptables,如何使用CSF添加自定义iptables规则

    CSF(configserver firewall)是一种基于iptables的防火墙,为实现iptables规则提供了更简单的方法.有时我们需要添加一些特定的规则(例如,CSF未涵盖的IPtable ...

  7. java中的switch的规则_细细讲述Java技术开发的那些不为人知的规则

    本文介绍的Java规则的说明分为3个主要级别,中级是平时开发用的比较多的级别,在今后将陆续写出其他的规则.遵守了这些规则可以提高程序的效率.使代码又更好的可读性等. 一.在finally方法里关掉in ...

  8. java排班_使用java规则引擎Drools自动排班前言.doc

    使用java规则引擎Drools自动排班前言 使用java规则引擎Drools自动排班前言本文以一个经简化的运输车队自动排班需求为例,详细讲解了如何使用java规则引擎Drools进行商业规则的形式语 ...

  9. 基于Rete算法的JAVA规则引擎

    作者:张渊 夏清国( 西北工业大学计算机学院, 西安710072) 出自:<科学技术与工程> 第 6 卷第 11 期 2006 年 6 月 摘要 在软件应用中若能抽取出规则, 可以使软件实 ...

最新文章

  1. python中with的用法
  2. python从sqlserver提取数据_通过Python读取sqlserver数据写成json文件的总结
  3. tez安装官方文档整理+翻译
  4. php-redis扩展模块安装记录
  5. Rainbond v3.7.0:实现企业级PaaS的稳定性
  6. android代码旋转屏幕,Android Activity源码分析--windowmanager屏幕旋转研究
  7. 栈——括号匹配(洛谷 Uva673)
  8. anaconda prompt 此处不应有_麻辣酷评,两厢思域哪个版本买了不吃亏?
  9. llvm+clang 添加 LTO(Link Time Optimization) 支持
  10. ASA 5520 ASDM 配置
  11. ADC的指标详细定义,SNR,以下内容无关: -------------------------------------------分割线----------------SNDR,SFDR,THD等
  12. 服务器启动端口被占用,解决Nginx启动出现端口被占用的问题
  13. 校园一角 四年级计算机课,校园一角的四年级作文5篇
  14. 各种绩效考核方法的区别
  15. 类似911的代理ip,911代理的官网,yilu代理软件,911s5替代软件海外代理平台哪里有?
  16. AWS-EC2域名映射
  17. 数独终局生成及残局求解
  18. FC-AE-ASM节点卡(支持 FC-AE-ASM 协议)
  19. 学生专用计算机怎么发出声音,计算机技巧-如何使显示器的内置扬声器发出声音...
  20. golang的基本语法

热门文章

  1. JavaScript实现京东首页轮播图
  2. [附源码]Python计算机毕业设计高校请假管理系统
  3. GTASA圣安地列斯如何打MOD2(简单教程)
  4. 如何进行高效学习——费曼技巧了解一下
  5. Apple 基于蓝牙的iBeacon技术
  6. 赵小楼《天道》《遥远的救世主》深度解析(37)丁元英参加酒局前的小插曲:从冯世杰的刁难找茬说说“心是愿望,神是境界”
  7. Java高级篇-----jdk1.8新特性
  8. PC 音频,视频硬件输出设置
  9. 三种设置session有效时间的方法
  10. 【蓝桥杯经典数学题】杨辉三角形