Sonar

SonarQube系列二、分析dotnet core/C#代码

限于喜欢 提交于 2019-11-27 04:38:26
【前言】 本系列主要讲述sonarqube的安装部署以及如何集成jenkins自动化分析.netcore项目。目录如下: SonarQube系列一、Linux安装与部署 SonarQube系列二、分析dotnet core/C#代码 SonarQube系列三、如何集成jenkins实现分析自动化 【实现功能】   这篇文章将要介绍的主要内容如下: sonarqube分析.netcore项目下的C#代码 sonarqube生成单元测试报告(代码覆盖率) 【SonarQube分析C#代码】 1.sonarqube账号token的生成 sonarqube支持生成用户token,以便在命令行或者脚本中使用token代表账号操作sonarbue,避免造成账号密码的泄露。 点击sonarqube首页右上角头像,进入我的账号 然后进入安全tab页,随便输入个标识,点击生成,生成一个账号专属的token 生成的token只会显示一次,且后续无法查询,因此先把他手动备份下来,后续会用到。 2.安装netcore分析器 分析netcore项目,微软和sonar一起协作做了很多工作,大大简化了我们的工具使用,官网可以查看相关工具及命令: https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-msbuild/ 我们按照官方提示

【代码质量管理工具】——sonar

被刻印的时光 ゝ 提交于 2019-11-27 02:44:19
【前言】 bug越改越多,程序一换数据就崩,这就是目前我们系统的一个现状。在这之前,进行过前后台代码规范整理,代码判空等工作,但这是人工检测的,有点慢,效率也比较低。当重新导入数据之后,模块大多都起不来了。于是乎,忍无可忍,我们就用了强大的代码质量工具——sonar来自动检测我们的代码,因为我们要写更安全,更优雅的代码。 【sonar简介】 sonar(SonarQube)是一个开源平台,用于管理源代码的质量,它不仅是一个质量数据报告工具,更是代码质量管理平台。它通过插件的形式来管理代码,它支持的语言包括:Java,PHP,C#,C等。 【主要特点】 sonar可以从以下七个维度来检测代码质量: 1、不遵循代码标准 sonar可以通过PMD,CheckStyle,Findbugs等代码规则检测工具规范代码的编写; 2、潜在的缺陷 sonar可以通过PMD,CheckStyle,Findbugs等代码规则检测工具检测出潜在的缺陷; 3、糟糕的代码复杂度分布 文件、类、方法等,如果复杂度过高将难以改变,这使得开发热女难以理解它们,且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试; 4、重复 显然程序中包含大量复制粘贴的代码质量低下的,sonar可以展示源码中重复严重的地方; 5、注释不足或者过多 没有注释将使代码可读性变差

新开发项目Jacoco代码覆盖率

 ̄綄美尐妖づ 提交于 2019-11-27 02:34:10
用JaCoCo工具看一下代码覆盖率, 一来看看测试有没有漏的测试用例 二来看看开发有没有留下冗余的代码 新开发项目Jacoco代码覆盖率 后端接口打成jar包,进行启动 ---------------------- 客户端:使用jacoco来生成覆盖率的文件、报告 ---------------------- 1.使用jacoco来生成覆盖率的文件:jacoco.exec 1. 获取到下载到的jacocoagent.jar 存放目录: /home/a/jacocoagent.jar 2. 要修改服务器配置---带上-javaagent选项。 【简单理解:javaagent类似于拦截器,在执行java的main方法之前,它会先执行javaagent里面的实现的premain方法】 修改java容器(jboss或者tomcat)启动jvm的选项: * jboss:在文件/home/a/jboss-4.2.2.GA/bin/run.conf的最后添加下面的一行: JAVA_OPTS="$JAVA_OPTS -javaagent:/home/a/jacocoagent.jar=destfile=/home/a/project/download/jacoco.exec" * tomcat:在目录下面/opt/taobao/tomcat/bin新建一个文件setenv.sh文件,内容如下:

Windows环境配置SonarQube Scanner实现代码检测分析

谁说胖子不能爱 提交于 2019-11-27 01:06:58
Windows下配置SonarQube Scanner检测分析代码 首先这里继续引用下SonarQube的架构图,在上文中记录了Windows下SonarQube服务及数据库环境的配置,本文则在此基础上,简单记录SonarQube Scanner代码分析工具的配置及使用,文中发现有问题或疏漏,希望可以得到您的反馈。 对于SonarQube Scanner这里不做太多介绍了,至于为什么使用SonarQube Scanner,看这里 SonarQube官方文档 推荐使用,更多原因,自行百度了~ Maven配置SonarQube Scannar实现代码分析 此处通过在Maven中配置Sonar Scanner,然后使用 mvn sonar:sonar 命令完成对代码的分析,该方式针对Maven构建项目,Gradle构建的项目未测试,自行尝试。 Maven环境配置 为了可以使用Maven命令运行Sonar来分析项目代码,首先需要将Maven的bin目录添加到环变量内,如下: 配置完成后,在命令行窗口使用命令 mvn -v 查看Maven版本等信息,验证环境变量配置完成 Maven增加SonarQube Scanner配置 首先在 Maven 的 conf 目录下找到Maven的配置文件 settings.xml ,搜索到 <profiles> 节点,在其中添加SonarQube

IDEA使用sonarLint

*爱你&永不变心* 提交于 2019-11-27 01:06:45
一、IDEA如何安装SonarLint插件 1.打开 Idea 2.点击【File】 3.点击【Settings】 4.点击【Plugins】 5.在搜索栏中输入“sonarlint”关键字 6.点击【Install】进行安装 7.重启Idea 二、IDEA如何连接Sonar服务器 1.打开 Idea 2.点击【File】→【Settings】 3.选择【SonarLint General Settings】 4.点击【+】 5.ConfigurationName:请输入连接名,如SonarQube 6.Choosea Connection Type:sonarqube 7.SonarQubeURL:http://xxxx 8.AuthenticationType:Login/Password •Login:请输入sonar系统登录用户名 •Password:请输入sonar系统登录密码 9.点击【Next】,提示连接成功 三、IDEA中SonarLint如何关联sonar已有项目 1.打开Eclipse 2.依次点击【File】→【Settings】→【OtherSettings】→【SonarLint Project Settings】 3.Bindto server:选择之前的sonar连接名,如SonarQube 4.点击【Updateproject list】

sonar-关于安装配置(一)

我是研究僧i 提交于 2019-11-26 23:34:31
安装环境: 本地mac机器(不同操作系统其实影响不大,参考官网) 预装环境: jdk1.8 关系型数据库(本人用mysql5.6) 安装配置步骤: 1、下载安装sonarqube 以及 sonar-runner 下载地址: http://www.sonarqube.org/downloads/(官网地址) 注:sonar-runner是sonarqube分析源代码的命令行工具 将下载的sonarqube-5.1.2.zip和sonar-runner-dist-2.4.zip解压到自定义目录(我在本机解压到了/work/local) 2、配置环境变量 添加SONAR_HOME、SONAR_RUNNER_HOME环境变量,并将SONAR_RUNNER_HOME加入PATH,代码如下: export SONAR_HOME=/work/soft/sonarqube-5.1.2 export SONAR_RUNNER_HOME=/work/soft/sonar-runner-2.4 export PATH=${PATH}:${SONAR_RUNNER_HOME}/bin 这样就将sonarqube环境变量配置完成了。退出命令行,在打开,输入echo $SONAR_HOME,检验是否会有路径输出。 3、创建数据库 以管理员身份登陆相应的mysql数据库,执行如下sql: mysql>

SonarQube 之 gitlab-plugin配合gitlab-ci完成每次commit代码检测

不问归期 提交于 2019-11-26 18:31:35
目录 背景介绍 环境、软件准备 Sonar GitLab Plugin 安装 配置使用说明 1、背景介绍 我们知道使用 SonarQube 可以在日常开发中检测代码质量,除了使用 IDE 上集成 SonarLint 插件检测外,如果我们想针对代码托管在 Gitlab 上每次 commit 的文件做代码检测,可以不可以呢?答案是肯定的,我们可以使用 Sonar GitLab Plugin 插件完成,该插件会针对每次提交修改的文件,添加注释行,同时添加本次提交的代码检测结果的评论。我们还可以配合 gitlab-ci 完成每次 commit 时,添加的代码检测 Pipelines stage 流程,来控制代码检测流程是否通过。 2、环境、软件准备 本次演示环境,我是在虚拟机 Linux Centos7 和本机 Mac OX 上操作,以下是安装的软件及版本: Docker:version 1.12.6 SonarQube:version 6.5 sonar-gitlab-plugin:version 2.1.0 GitLab:version Community Edition 9.1.4 gitlab-runner:version 1.11.2 注意:我们将代码托管在 GitLab 上,这里 GitLab 基于 Docker 安装,所以需要安装 Docker,本次还需要演示 跟

使用Docker构建Sonar代码质量管理平台

。_饼干妹妹 提交于 2019-11-26 18:31:24
Sonar是什么 Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。 此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。 部署 下面我们先来部署一下 这里我们依然使用Docker来部署Sonar 运行Docker 命令 使用官方镜像 sonarqube即可 docker run -d --restart=always --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube 与Jenkins集成使用 实践使用中我们需要和CI工具 进行配合使用 这里我们主要讨论与jenkins的集成使用 我们使用Jenkins sonar 插件来集成 进入Jenkins 插件管理页面 选择安装 SonarQube Plugin 即可 安装完成后需要配置一下 sonar 服务的地址 和

docker 创建 sonar服务

血红的双手。 提交于 2019-11-26 18:31:14
1. 安装postgresql : docker pull postgres 2. 启动postgresql: docker run --name db -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d postgers 3. 安装sonerqube: docker pull sonarqube 4. 启动sonarqube: docker run --name sq --link db -e SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar -p 9000:9000 -d sonarqube 192.168.99.100:9000 打开 来源: oschina 链接: https://my.oschina.net/u/3536860/blog/3055327

sonar常见错误以及处理方案

狂风中的少年 提交于 2019-11-26 18:05:49
总结我们在开发中常见的代码问题,同时将sonar中的问题也归纳了进来 一、异常处理中的未打印或者抛出异常信息 这个主要是没有将异常信息打印出来,又或者异常没有抛出。比如我们在action中,异常信息是打印成日志,而service中是将异常信息抛出,按照这样做了,就不会再有这类的错误。 l Sonar Either log or rethrow this exception. l 错误示例 略 l 处理方案 将异常通过日志打印或者抛出 二、使用非同步的类来代替同步的类 非同步的类在执行效率上会高于同步的类,所以在不是必须同步的情况下,建议使用非同步类。 l Sonar Replace the synchronized class "StringBuffer" by an unsynchronized one such as "StringBuilder". l 错误示例 略 l 处理方案 ArrayList or LinkedList instead of Vector Deque instead of Stack HashMap instead of Hashtable StringBuilder instead of StringBuffer 三、移除没有用到的包、变量、方法 l Sonar Remove this useless assignment to local