sonar安装与使用

mac搭建SonarQube

1、准备环境

>= jdk1.8

mysql5.x+ < 8.0

2、下载安装包

服务端:

sonarqube:http://www.sonarqube.org/downloads/

客户端工具:

sonar-runner:http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/2.3/sonar-runner-dist-2.4.zip

中文补丁包下载:

https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/tag/sonar-l10n-zh-plugin-1.23

http://docs.codehaus.org/display/SONAR/Chinese+Pack

2.1、解压路径:/usr/local

3、创建数据库

mysql -u root -p

mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;

mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonar';

mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';

mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';

mysql> FLUSH PRIVILEGES;

4、修改配置文件

4.1 

vim /usr/local/sonarqube-5.6.6/confsonar.properties

sonar.host.url=http://localhost:9000/sonarqube

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

sonar.jdbc.username=root

sonar.jdbc.password=123456

4.2

vim /usr/local/sonarqube-5.6.6/wrapper.conf

wrapper.java.command=/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java

注意:把wrapper.conf中的wrapper.java.command修改成jdk1.8路径(可能报错 没有权限 使用默认通过)

否则会找系统自带jdk版本的命令执行,启动的时候可能报错

4.3

vim /usr/local/sonar-runner-2.4/conf/sonar-runner.properties

sonar.host.url=http://localhost:9000/sonarqube

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

sonar.jdbc.username=root

sonar.jdbc.password=123456

5、配置环境变量

vim ~/.bash_profile

export SONAR_HOME=/usr/local/sonarqube-5.6.6

export SONAR_RUNNER_HOME=/usr/local/sonar-runner-2.4

export PATH=$M2:$PATH:$SONAR_RUNNER_HOME/bin:$JAVA_8_HOME/bin

配置完成后环境变量生效

source ~/.bash_profile

试验:sonar-runner -version

6、启动SonarQube

cd /usr/local/sonarqube-5.6.6/bin/macosx-universal-64

./sonar.sh start

查看启动日志:

tail -f /usr/local/sonarqube-5.6.6/logs/sonar.log

关闭命令:

./sonar.sh stop

登录:http://localhost:9000/sonarqube

默认密码:admin/admin

7、扫描项目

7.1 maven 环境

Maven仓库中就有SonarQube Scanner工具的插件,只要在$M2_HOME/conf/setting.xml文件中添加如下配置

新版本sonar需指定:<sonar.java.binaries>target</sonar.java.binaries>,即项目编译后的文件目录,否则报错

        <profile>
            <id>sonar</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <sonar.host.url>http://127.0.0.1:9000/sonarqube</sonar.host.url>
		<java-module.sonar.sources>src</java-module.sonar.sources>
		<java-module.sonar.projectBaseDir>.</java-module.sonar.projectBaseDir>
		<sonar.java.binaries>target</sonar.java.binaries>
            </properties>
        </profile>

    
    <pluginGroups>
        <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
    </pluginGroups>

配置完成后,在项目中,执行mvn sonar:sonar,SonarQube Scanner会自动扫描,根据pom.xml文件得出项目相关信息,不需要自定义sonar-project.properties。扫描完成后就会上传只Sonarqube服务器中。稍后,登陆服务器中就可以看到分析结果了。

mvn sonar:sonar   -Dsonar.host.url=http://localhost:9000   -Dsonar.login=3d1e7d0d1113e274348416e14182ec154d98d122 -Dsonar.java.binaries=target

7.2 手动扫描

 打开要进行代码分析的项目根目录,新建sonar-project.properties文件

sonar.projectKey=my:task

# this is the name displayed in the SonarQube UI

sonar.projectName=My task

sonar.projectVersion=1.0

sonar.projectDescription= task 定时任务调度

# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.

# Since SonarQube 4.2, this property is optional if sonar.modules is set.

# If not set, SonarQube starts looking for source code from the directory containing

# the sonar-project.properties file.

#sources是源文件所在的目录

sonar.sources=master/src,slave/src

sonar.binaries=WebRoot/WEB-INF/classes

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

sonar.language=java

sonar.my.property=value

sonar.sourceEncoding=UTF-8

在项目跟目录执行  输入命令:sonar-runner

8、项目报告介绍

查看项目报告 : http://localhost:9000/sonarqube

8.1  项目列表

8.2  仪表盘-custom中查看项目整体情况

阻断和严重问题,还有重复代码量都有体现,我们可以点击去看详细问题进行修复。


总结:通过SonarQube工具,作为码农可以及时审查自己的代码水平和问题,进行及时修复,优化代码的质量,这种工作我们要持之以恒的态度,才能使项目始终保持高可用,高效,干净整洁的状态。

猜你喜欢

转载自blog.csdn.net/qq_35119422/article/details/82116259