Sonar

Jenkins与Sonar集成

匿名 (未验证) 提交于 2019-12-03 00:18:01
随着代码量的增多,服务模块的拆分,代码越来越难进行管理,质量与效率这一对矛盾体将凸显出来,就希望将代码质量管理的模式由原来人为主动控制转变成为由自动化工具检测,人被动接收通知,并且相关数据沉淀下来。 Jenkins 大家都熟知是用来自动化单元测试、编译、打包及部署的,挺好用的。 基于另外一个出发点,针对代码规范,相信大家或多或少的了解过阿里巴巴开源的编码规范,看过就忘记了,在开发过程中,常常由于时间进度紧没能很好的执行,但程序真正运行起来出现问题往往都是这些潜在的问题与坏味道导致的,如果有一种工具能够将这些规则固化到日常开发流程中去,利用工具倒逼着自己提前考虑这些问题,那将大大的提高软件质量,也充当了一部分代码走读的功能,另一方面也能够将自己的知识结构更加系统化的锻炼, Sonar 就是为这个而生的,业界也提供了这两者的集成方式,方便的将流程集中在一起了,这也是持续集成中的部分概念。 本文档描述不清晰或者关于这两款工具软件其它功能的最佳实践,还望各位指正。 Jenkins 版本 2.107.3 下载地址 ,我这里是下载的 .war 包形式 Sonar 版本 7.1 下载地址 ,我这里下载的是 Latest Release 版本 JDK 1.8+ 与 Mysql 5.6+ 这就不多说 Maven 3.2.1 Jenkins 因为下载的是 .war 包形式,也不存在其它的安装步骤

Jenkins+sonar+tomcat+SVN集成搭建

匿名 (未验证) 提交于 2019-12-03 00:03:02
一、 文档说明 Jenkins+tomcat+sonar+SVN集成分析代码Jenkins、sonar而做,若是在本地服务器搭建则不需要做相关工作;Jenkins和sonar的搭建环境为Linux、mysql、jdk1.7、jenkins、sonar4.5等,相关的版本说明会在后续文档中详细描述。 二、 jdk1.7安装 1、 jdk安装包 rpm包, http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ; 2、 jdk 1)安装rpm包,命令:rpm -ivh jdk-6u45-linux-amd64.rpm 2)JDK环境变量: a.[root@localhost tools]# vim $HOME/.bash_profile b.添加下面信息: #Java Profile export JAVA_HOME=/usr/java/jdk1.6.0_45 (按照自己的真实目录) export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin c.保存退出; d.使环境变量生效[root

持续集成高级篇之Jenkins Pipeline 集成sonarqube

匿名 (未验证) 提交于 2019-12-02 23:57:01
系列目录 前面章节中我们讲到了Sonarqube的使用,其实Sonarqube获取msbuild结果主要是执行三个命令,开始标记,执行msbuild,结束标记,这些都是命令,是非常容易集成到我们ci流程中的,但是使用这种方式最为简单,但是Sonarqube插件与jenkins集成的更好,我们可以通过jenkins页面看到构建结果是否成功,以及可以通过链接轻松地跳到Sonarqube web管理界面.前面章节我们介绍了如何在自由式任务中使用sonarqube插件,这里我们讲下如何在pipeline中使用sonarqube插件. 还是直接先上代码 node { def sqScannerMsBuildHome = tool 'defaultSonarforMsbuild' stage('SonarQube analysis') { withSonarQubeEnv('defaultSonarserver') { echo "\"默认地址是:${sqScannerMsBuildHome}\"" bat "\"${sqScannerMsBuildHome}\\SonarQube.Scanner.MSBuild.exe\" begin /k:jenkinstest /n:jenkinstest /v:110.0 /d:sonar.host.url=http://localhost:9000"

关于Spring静态注入属性的另一种优雅的方法

匿名 (未验证) 提交于 2019-12-02 23:55:01
以前使用的静态注入的方法都是通过@PostConstruct来实现的。 方法可行,也挺方法,但是有一个问题就是会报sonar。 因为调用类的实例方法去给静态常量赋值是不允许的。 公司严格要求Sonar,禁止出现新增坏味道,所以这个方法必须改,而且在后期也要对历史代码进行修改。 查阅资料找到一个新的方法。新的思路为在容器初始化之后,对静态常量进行赋值。 @Component public class TableConfig implements ApplicationListener < ContextRefreshedEvent > { @Autowired private ApplicationContext applicationContext ; @Override public void onApplicationEvent ( ContextRefreshedEvent contextRefreshedEvent ) { DataTableCleanUtil . setDbUnitCleanTableDao (( DBUnitCleanTableDao ) applicationContext . getBean ( "DBUnitCleanTableDao" )); } } 调用DataTableCleanUtil的set方法来注入,这样就不会出现坏味道了 来源

Window从零开始搭建Jenkins+SonarQube持续集成平台

匿名 (未验证) 提交于 2019-12-02 23:47:01
此文档暂时不包含发布相关知识点。 持续集成环境:Jenkins 所需系统环境: java 8 及以上,配置 java 相关环境变量(此处略过) 代码托管:Git 2.22 或者 gitlab 审查工具:SonarQube 该工具由两部分组成,分别是 SonarQube本身(即是审查服务器),和 sonar-scanner(审查服务端) SonarQube和sonar-scanner的关系就像是 github 官网和我们本地的 git 软件的关系 snoar-scanner = sonar-runner 是同一个软件在不同版本下的名字,网上的教程两者基本上是通用的 Jenkins 提取密码:acko SonarQube v5.6 提取码:bpg1 sonar-scanner 提取码:cy1n mysql 5.7.19 提取码:pwwv 1.下载 Jenkins 的 war 包 2.在 war 包所在目录执行 java -jar jenkins.war --httpPort=8089 3.打开浏览器输入网址 localhost:8089 我们就能发现 Jenkins 已经跑起来了 1.首先需要安装 MySql 数据库(为了方便可配置mysql相关环境变量,同时第一次进入mysql需要修改密码,此处都略过,百度一下) root 登录 mysql,创建 sonar 数据库和用户授权。 2

SonarQube集成golang检测(10)

匿名 (未验证) 提交于 2019-12-02 23:36:01
sonar集成golang的检测工具 sonar中的插件SonarGo自带一些检测规则,但sonar想要集成golang的覆盖率、单元测试报告、和更多的代码规则,需要集成其他golang的检测工具 单元测试 通过golang的单元测试工具go test生成单元测试报告(见代码检测工具-golang测试工具) 报告使用终端转化的json文件,不可以使用转化的xml报告、不转化终端报告(亲测可以读取报告但是sonar项目中并无展示任何相关数据,同时sonar配置中的go配置中也有说明) go test -v xxx -json > test.json sonar的项目配置文件sonar-project.properties中添加如下配置: sonar.go.tests.reportPaths=xx/xx/xx sonar导入golang的单元测试报告目前有1问题未解决,就是单元测试的报告中写入的package是项目名/包名(不含/go/src),运行sonar-scanner时总是报错提示找不到package和Test函数,经亲测发现无论怎么修改测试报告、sonar-scanner的运行目录都无法解决这个问题。 覆盖率 通过golang的覆盖率统计工具生成覆盖率统计报告(见代码检测工具-golang测试工具) 报告需要直接使用终端报告,不可以使用转化的xml、html、txt报告

SonarQube集成python检测(11)

匿名 (未验证) 提交于 2019-12-02 22:11:45
sonar检测python的检测工具 sonar中的插件python自带一些检测规则,但sonar想要集成python的覆盖率、单元测试报告、和更多的代码规则,需要集成其他python的检测工具 单元测试(Ant模式下) 如上所至项目根目录的sonar-project.properties文件添加如下配置 sonar.python.coverage.reportPath=*coverage-*.xml sonar-project.properties文件配置修改说明为: Property Scope Example Description sonar.python.coverage.reportPath Project-wide coverage- .xmlt SINCE 1.1 Ant pattern describing the path to coverage reports, relative to projects root. Leave unset to use the default (“coverage-reports/ coverage- .xml”).The reports have to conform to the Cobertura XML format. 覆盖率 通过coverage工具生成覆盖率统计报告(见代码检测工具-python测试工具)

Sonarqube C#静态代码规范检查(一)

此生再无相见时 提交于 2019-12-02 18:42:50
使用说明 代码规范对于每个开发来说重要也重要,说不重要其实也没那么重要,简单点的vs的code analysis也能提供很多的建议,重量级一点的Resharper不仅能提供建议,还提供了更方便快捷的一键重构工具,当我需要一个可以和Gitlab集成并且能自动化分析各个项目代码质量的时候,以上工具可能只侧重在编码阶段给开发人员及时的提醒,并不能满足我的需要,所以就找到了Soanrqube的这个算是开源的工具。 以下介绍docker环境下的安装使用(部分翻译自官方文档) 1.从官方下载镜像 Docker官方镜像说明地址: https://hub.docker.com/_/sonarqube/ 以下拉取最新的8.0的社区版本的镜像 docker pull sonarqube:8-community-beta 你也可以下载默认最新的稳定版本的镜像 docker pull sonarqube 2.快速开始使用 以下蒋向您展示如何快速运行演示实例,当你准备安装一个更稳定的版本时,请花一点时间阅读配置部分。 docker run -d --name sonarqube -p 9000:9000 sonarqube 默认的登陆账号是admin,密码也是admin 浏览器打开:http://localhost:9000 等待自动配置完成就可以登陆了。 3.分析C#代码

sonar安装和使用

为君一笑 提交于 2019-12-01 20:19:20
安装 1. 从官网下载, https://www.sonarqube.org/downloads/ 2. 下载之前要看好要求,我安装的是7.6的版本,要求是jdk1.8,mysql 5.6 到8 ,我使用的是5.7 3. 下载之后解压出来,运行bin 》 windows-x86-64 》 StartSonar.bat 不同操作系统不同。访问localhost:9000,能看到页面,就说明环境没问题。否则会提升jdk版本不对。 4. 在conf 》 sonar.properties中,加入如下配置,再执行3。记得删掉注释。如果启动后日志报错,可以清楚任务管理中所有的java进程,再启动。 如果启动成,在刚建的数据中,会有表生成。 sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false sonar.jdbc.username=用户名 // 刚刚创建的sonarQube用户 sonar.jdbc.password=密码 // 创建用户对应的密码 sonar.sorceEncoding=UTF-8 // 设置编码格式为UTF-8

Centos6.9安装SonarQube7.6

二次信任 提交于 2019-12-01 13:48:15
1 安装前准备 Oracle JDK 8 MySQL数据库,具体可参考 Centos6.9安装MySQL5.6 SonarQube7.6,Community Edition版本下载地址:https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.6.zip 2 MySQL建库 2.1登录到MySQL mysql -u root -p 输入正确密码,进入MySQL 2.2 创建数据库和用户并授权 -- 数据库 CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; -- 用户 CREATE USER 'sonar' IDENTIFIED BY 'sonar'; -- 权限 GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar'; GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar'; FLUSH PRIVILEGES; 3 安装SonarQube 3.1使用xftp把安装包上传到服务器/tmp目录 3.2 把包拷贝到/opt目录下 cp sonarqube-7.6.zip /opt 3.3到