首页
学习
活动
专区
圈层
工具
发布

SonarQube自定义规则开发

本篇介绍了如何使用java来进行SonarQube的自定义规则插件的开发 基本上就是直接翻译Writing Custom Java Rules 101这个SonarQube的官方Readme内容 建议具有一定...Intellij idea或者eclipse等主流IDE 本次规则插件主要针对SonarQube8.9以上的版本进行开发 主要开发流程 git clone sonar-java这个项目 进入到开发目录.../docs/java-custom-rules-example/中,对该目录下的各个文件夹和文件进行说明: pom.xml和pom_SQ_8_9_LTS.xml: 由于SonarQube的规则插件是基于...Maven开发的,所有开发需要的依赖和插件都需要在这里写明,由于本次是编写面向SonarQube8.9以上版本的规则插件,所以这一次使用pom_SQ_8_9_LTS.xml ....主要开发流程中各个文件的代码 本次开发的规则:如果一个函数有一个参数,那么他的返回值和这个参数不能是一个类型 1、测试文件MyFirstCustomCheck.java class MyClass

2.7K20

一步步编写SonarQube Plugin

插件不好写?! 插件确实不好写,因为插件是插入庞大的系统当中工作的,那也就意味着写插件需要具备一定的领域知识,包括系统架构、扩展点、业务共性及差异、API及其业务模型对应、安装和测试。...Template:规则模板:比如某些参数可以运行时传入。 Quality Profile:挑选特定语言下各种规则组成的配置;其中可以启用或禁用一部分规则。...-r 代表报告的输出路径 注意:这里PMD的规则和SonarQube中的规则其实没有太大关系,属于两种事物。...这里值得注意的是自SonarQube 5.6之后,我们可以通过context.settings()来获取工程的配置了,而不像以前那样依赖注入Settings对象了。...那么接下来的问题就是如何运行它? 使用插件扫描工程 下载sonarqube docker镜像 最易于调试的地方莫过于本地了。

6.2K41
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    没关系,SonarQube来喽!

    小编所在的测试组尝试了sonar,它的优势主要体现为:它是一个开源的代码质量管理系统,支持 25+ 种语言,可以通过使用插件机制与 Jenkins及其他外部工具集成,从而实现对代码的质量的全面自动化分析和管理...服务器上安装了多个SonarQube插件,可能包括语言,SCM,集成,身份验证和管理插件 4、在CI/CD Server上运行一个或多个SonarScanner来分析项目 二、工作流程 以下模式显示了SonarQube...如何与其它工具进行集成,以及在哪里使用SonarQube的各种组件。...UI审核,评论,挑战他们的Issues以管理和减少他们的技术债务 7、管理者从分析中接收报告,运维使用API自动配置并从SonarQube中提取数据,使用JMX监控SonarQube Server 三...、主要功能 Sonar可以从下图7个维度检查和扫描代码质量,并根据sonar自带的规则和质量配置给出详细的检查结果,那么它是如何扫描、效果如何呢~ ?

    1.4K20

    SonarQube:为你的PHP代码质量保驾护航

    SonarQube优势 支持30多种不同的编程语言 插件机制能集成IDE、Jenkins、Git等 内置大量常用代码检查规则 支持定制开发规则 支持从可靠性、安全性、可维护性、覆盖率、重复率等方面分析项目...插件层:Sonarqube的插件层是一个可扩展的架构,它允许用户安装和使用各种不同的插件来增强Sonarqube的功能和灵活性。...使用这些数据采集插件,Sonarqube可以轻松地从不同的代码库中收集数据。 安装 这里使用Docker安装Sonarqube。...拉取代码 git clone git@github.com:Tinywan/hello.git 使用SonarQube插件扫码结果和建议 问题一:定义参数没有使用 Remove the unused...SonarQube告诉你应该这么做:在代码中使用未使用的函数参数可能会导致对开发人员意图的混淆和误解。它们降低了代码的可读性,并引入了潜在的错误。

    1.4K10

    敏捷过程中如何保证代码质量

    扩展性强:插件扩展机制强大,已有60+插件,还可以开发自己的插件 问题关联到源码:所有问题都关联到具体的代码行,比较直观 易于集成:通过插件支持多种软件生命周期管理平台 下面我们详细了解一下SonarQube...; SonarQube的各个组件是如何工作的呢?...、使用SonarQube Scanner执行分析; d) 分析报告被发送到SonarQube Server进行处理; e) 处理好的报告生成对应可视化的视图,并将数据保持到数据库; f) 开发者可以在页面通过查看...代码规则:在SonarQube中,通过插件提供的规则,在执行代码分析时对代码进行分析并生成问题。由于规则中定义了修复问题话费的成本(时间),解决问题的代价以及技术债可以通过这些问题进行计算。...在构建环节,DevOps平台的职责是:配置构建的触发方式、保留策略、参数,根据构建定义配置生成对应的Jenkins Pipeline配置,调用Jenkins的API触发创建和执行Jenkins Job,

    2.3K61

    【详解】SonarQube代码质量管理平台

    高级配置自定义规则SonarQube允许用户自定义规则,以满足特定项目的需要。可以通过插件或直接在Web界面中配置规则。...在​​sonar-project.properties​​文件中,可以定义多个模块及其路径。...SonarQube 可以集成到现有的开发流程中,帮助团队在开发过程中保持高质量的标准。下面我将提供一个简单的示例,展示如何使用 SonarQube 的 Java 客户端 API 来分析项目。...网络配置: 如果 SonarQube 服务器不在本地运行,确保网络配置允许从你的开发环境访问该服务器。以上就是一个基本的示例,展示了如何使用 Java 调用 SonarQube 进行代码质量分析。...代码扫描:使用 SonarScanner 或其他插件对代码进行扫描。结果分析:查看扫描结果,分析代码问题并进行修复。

    91000

    关于SonarQube开源版使用问题

    1 简介 在大规模使用SonarQube平台对代码进行扫描时可能会遇到以下几个问题 SonarQube平台数据问题(开源版本不支持不同分支) SonarQube扫描规则问题(当配置了默认规则后新建项目如何指定新规则呢...SonarQube项目授权问题(新生产的项目如何配置权限?) ?...小型团队也可以使用生成多项目的方式管理。 ? 3 解决SonarQube扫描规则问题 在搭建好SonarQube平台后,已经配置好了针对每种语言的"Sonar Way"质量配置。...其中有几十个团队在用默认的规则,后来个别团队因需求要使用新的JAVA项目质量。如何为新建的项目自动配置好对应的质量呢?...JenkinsFile(ShareLibrary)参考如下: package com.devops //Http req 使用Jenkins插件封装的方法 哈哈哈 def HttpReq(reqType

    4.3K40

    SonarQube升级踩坑记录

    但是开发同学也希望,能使用IDEA+SonarLint+SonarQube,与最终“质量门禁”使用相同的规则,以促进质量内建。...-u 4096 sonarqube ulimit -n 65536 sonarqube 坑1- 上述参数的设定需要写入文件,上述命令行只对当前session有效,系统重启后又恢复前值,会导致系统无法正常启动...离线安装 版本包获取 SonarQube https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.9.2.zipOpenJDK...其余项目 插件和自定义规则需要额外升级 插件清单:$SONAR_HOME/extensions/plugins 自定义规则:$SONAR_HOME/extensions/rules 配置文件:$SONAR_HOME.../Distribution/sonarqube/sonarqube-6.7.7.zip 安装过程参考本文前半部分,下同 3)安装插件和自定义规则 4)使用原6.7版本的sonar.properties和

    5K20

    量化你团队的代码质量

    整合目标 本文除了让大家了解这些工具如何使用以外,还会重点描述如何组织这些代码质量的周边工具链使其达到工程化程度,讨论什么该做,什么不该做,为什么这么做。...Code coverage 单元测试、API 测试、集成测试,只听这些概念就足够让我们晕头转向,但无论如何,我一直很认同一句话:没有覆盖率统计的测试就是耍流氓。...兼容的 xml 格式报告 build/coverage_sonarqube.xml 文件,稍后我们介绍如何将该文件上传到 SonarQube 平台用以统计。...平台,就可以看到分析结果了(一定要安装 cxx-community 插件并应用 clang-tidy 规则): 图片 SonarQube 支持设置每个工程的质量阈,如果您的团队短时间内无法对新代码实现高的覆盖率...GitLab API 保存: 图片 确认连接无问题后保存,再次触发某个 Pipeline 并上报结果到 SonarQube 后,SonarQube 平台会调用 GitLab 提供的 API 将问题数据回报给每个

    2.2K30

    使用了这个神器,让我的代码bug少了一半

    1.7 糟糕的设计 通过sonarqube可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则 通过sonarqube可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况...二 sonarqube如何搭建 官网地址:https://www.sonarqube.org/,选择“文档”菜单 ? 在出现的文档页面中可以选择版本,目前最新的版本是8.5。...PostgreSQL的安装与使用可以参数:https://www.jianshu.com/p/7d133efccaa4 2.3 从zip文件安装sonarqube SonarQube无法在root基于Unix...三 sonarqube如何使用 3.1 在maven项目中集成sonarqube 先在maven的settings.xml文件中增加如下配置: 规则,根据实际的项目需求自己开发插件,比如:我们自己开发了mybatis插件,扫描mapper和xml文件名称不一致的情况。 ?

    3.6K40

    使用了这个神器,让我的代码bug少了一半

    1.7 糟糕的设计 通过sonarqube可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则 通过sonarqube可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况...二 sonarqube如何搭建 官网地址:https://www.sonarqube.org/,选择“文档”菜单 在出现的文档页面中可以选择版本,目前最新的版本是8.5。...PostgreSQL的安装与使用可以参数:https://www.jianshu.com/p/7d133efccaa4 2.3 从zip文件安装sonarqube SonarQube无法在root基于Unix...三 sonarqube如何使用 3.1 在maven项目中集成sonarqube 先在maven的settings.xml文件中增加如下配置: 规则,根据实际的项目需求自己开发插件,比如:我们自己开发了mybatis插件,扫描mapper和xml文件名称不一致的情况。

    1.8K10

    IOS 代码扫描从放弃到入门

    需要在找一个免费的插件,在github找到两个项目 插件一 https://github.com/Backelite/sonar-objective-c 这个插件在三年前没有修改了,在使用中发现有些扫描规则并没有...插件二 这个项目稍微更新的时间短一些,有些规则适当的更新了 https://github.com/raatiniemi/sonar-objective-c 下载插件放到 /extensions/plugins...中删除这个规则 问题3:没有这个规则 解决方案:使用新版本的jar包 问题4:有个异常,去掉-Dsonar.swift.swiftlint.report=swiftlint.txt 问题5 因为每次扫描都是增量扫描...每次扫描的时候想知道是扫描的哪个版本的数据,通过参数-Dsonar.projectVersion参数可以上传版本号. shell中获取版本号 version_number=`sed -n '/MARKETING_VERSION...参考资料: [1]:如何使用脚本读取Xcode 11中的当前应用程序版本(https://stackoom.com/question/3q09t/如何使用脚本读取Xcode-中的当前应用程序版本) [2

    3.9K20

    Java、Python、C++支持jenkins和SonarQube(全集)

    Quality Profile(质量配置) 定义代码规则(如使用 SonarWay 默认规则或自定义规则)。 Quality Gate(质量门) 通过/失败标准(如“零严重漏洞”才能合并代码)。...SonarQube配置 1)下载安装“SonarQube Scanner”插件。...可配置性强(支持自定义规则) ✔插件系统(可扩展额外检查) 5.4.3.基本使用 1安装 bash pip install flake8 2运行检查 bash #检查当前目录 flake8...--branch选项 定期检查趋势:监控覆盖率变化曲线 智能忽略代码:合理使用#pragma:nocover 结合其他工具:与pylint/flake8等配合使用 5.7.7.常见问题 Q1:如何测量特定子进程的覆盖率...可能是异常处理分支 使用coveragedebugsys检查测量系统 Q3:如何测量多线程程序的覆盖率?

    67710
    领券