sonarqube mysql mac_Sonarqube 在Mac Mini下的安装及使用

本文档介绍了如何在Mac Mini上安装SonarQube,包括安装Sonar、配置数据库(MySQL)、启动Web Server,以及安装插件、应用代码检核和解决常见问题的过程。
摘要由CSDN通过智能技术生成

新晋测试小白最近在研究sonarqube的静态代码检查,整理了关于sonarqube 如何在mac os x系统下的安装和应用。大家在阅读的同时如果发现有问题,欢迎拍砖、探讨。

1.安装sonar

(1)安装sonarqube

下载SonarQube安装包并且解压至待安装的文件夹,下载并解压Sonar Runner或者Sonar Scanner,并且解压至待安装的文件夹 。

添加SONAR_HOME、SONAR_RUNNER_HOME或SONAR_SCANNER_HOME环境变量,并将SONAR_SCANNER_HOME加入系统变量,如下:export  SONAR_HOME=xxx

export  SONAR_SCANNER_HOME=xxx

PATH=${PATH}:${SONAR_SCANNER_HOME}/bin

(2)修改配置文件

编辑/conf/sonar.properties文件,配置数据库设置,默认已经提供了各类数据库的支持。

这里使用mysql,因此取消mysql模块的注释。在此之前确保mysql中已经创建了sonar 的数据库。sonar.jdbc.username= sonar

sonar.jdbc.password= sonar

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar? useUnicode=true            &characterEncoding=utf8&rewriteBatchedStatements=true&useSSL=false

sonar.jdbc.driverClassName=com.mysql.jdbc.Driver

修改sonar-runner.properties OR  sonar-scanner.properties,切换至sonar-scanner的安装目录下,修改sonar-scanner.properties。根据实际使用数据库情况取消相应注释(后面的版本可以不用配置数据库信息)。sonar.host.url=http://192.168.1.22:9000

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true              &characterEncoding=utf8

sonar.jdbc.username=sonar

sonar.jdbc.password=sonar

sonar.sourceEncoding=UTF-8

sonar.login=admin

sonar.password=admin

打开Web Server进行外部访问,在sonar.properties文件中解除注释如下:sonar.web.host=192.168.1.22

sonar.web.port=9000

sonar.web.context=/sonar

调整sonar的java配置参数,默认情况下,SonarQube 执行时应用的是一个简单的Java JRE,为了更好的 执行效果,可以配置自己安装Java JDK,并且解除sonar.properties的注释如下:sonar.web.javaOpts=-server

修改SonarQube应用的Java JVM,通过修改/conf/wrapper.conf,修改内容如下:wrapper.java.command=[my_jdk_path]/jdk/bin/java

目录切换至sonar的/bin/[OS]目录,启动服务

./sonar.sh start   启动服务

./sonar.sh stop    停止服务

./sonar.sh restart 重启服务

至此,sonar就安装好了,访问http://192.168.1.22:9000查看。

2.安装插件

sonar是一个开源的框架,通过安装不同的插件,可以实现对不同的开发语言,产生对应的检查规则。有两种安装插件的方法:

第一种:在有网络的情况下,安装了sonar server 时,如果用户有全局权限,并可以进入管理员选项卡。则可以选择在System> Update Center >Available Plugins 选择自己所需的插件,安装后重启sonar server。

第二种:在[SONAR_HOME]/extensions/plugins 中上传已经下载的插件,并重启sonar server。

如果安装了商业插件的话,需要导入证书,在Administration > Configuration > Licenses,在待安装的插件处点Update,输入License并保存,然后重启sonar server。

3. 应用sonarqube进行代码检核

根据官网提供的文档,一个简单的配置只在需要检查代码的项目根目录添加一个sonar-project.properties文件,并配置如下:# must be unique in a given SonarQube instance

sonar.projectKey=myproject_id

# this is the name displayed in the SonarQube UI

sonar.projectName=Myproject

sonar.projectVersion=1.0

sonar.sources=.

# Encoding of the source code. Default is default system encoding

sonar.sourceEncoding=UTF-8

在项目的根目录下执行sonar-runner 或者sonar-scanner。

通过登录http://192.168.1.22:9000默认的用户名密码均为admin,查看生成的报告。

4.针对Android Gradle 项目的代码检核

SonarQube Scanner 有一款Gradle 的插件,提供了一种更简便的方式以分析Gradle 项目。

使用SonarQube Scanner 插件的前提:SonarQube 已安装、支持SonarQube server 的最低java版本已安装、支持InnoDB 引擎的mysql。

(1)如何使用SonarQube Scanner

在~/.gradle/gradle.properties文件中进行如下配置,实现全局变量:systemProp.sonar.host.url=http://192.168.1.22:9000

systemProp.sonar.login=admin

systemProp.sonar.password=admin

在项目根文件的build.gradle中进行如下配置(gradle2.1+的版本):plugins {

id "org.sonarqube" version "2.2.1"

}

在项目根文件的build.gradle中进行如下配置(任何gradle版本都支持):buildscript {

repositories {

maven {

}

}

dependencies {

classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.2.1"

}

}

apply plugin: "org.sonarqube"

在项目根文件的build.gradle中配置sonarqube任务sonarqube {

properties {

property "sonar.projectName", "test"

property "sonar.projectKey", "test"

property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver"

property "sonar.projectVersion", "1.0"

property "sonar.projectBaseDir", "."

property "sonar.modules", "app"

property "app.sonar.language", "java"

property "app.sonar.sources", "/src/main/java/"

property "sonar.showsql", "true"

property "sonar.verbose", "true"

property "sonar.scm.provider", "git"(确保插件已经安装)

property "sonar.profile", "Android Lint”(确保插件已经安装)

}

}

执行 grade sonarqube(未安装grade执行./gradlew sonarqube) ,执行成功后登录sonarqube控制台查看生成的报告。

5.问题以及解决方案

在执行sonar-scanner的时候,总是报错org.sonarqube.ws.client.HttpException:Error 500,最后在查看web.log的时候,提示“com.mysql.jdbc.PacketTooBigException: Packet for query is too large (7290627 > 4194304). You can change this value on the server by setting the max_allowed_packet' variable.”。

登录到mysql执行 show variables like ‘%max_allowed_packet%’。查看该参数的值,然后执行set GLOBAL max_allowed_packet = 134217728,重启mysql服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值