Bootstrap

SonarQube和sonar-scanner详细安装及配置(二)

 

sonar这个玩应,捅咕了好几天,太坑了。0.0坑的都无语了,决定写一篇分享一下经验,之前也写了一个,不过那个版本有点低,删了重写。

1.环境

系统环境:centos7.0 -x86_64(精简安装) 
前置条件:jdk1.8 , mysql-5.7
软件下载目录:/usr/local/
软件安装目录:/usr/local/
软件版本:sonarqube-6.7.5,sonar-runner-dist-2.4 sonar-scanner-3.0.3.778
sonarqube下载地址:http://www.sonarqube.org/downloads/
sonar-runner下载地址:https://link.jianshu.com/?t=http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/2.4/sonar-runner-dist-2.4.zip
sonar-scanner下载扫描器地址:https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/

(sonar-runner和sonar-scanner都是扫描器,用哪个都可以。我用的是sonar-scanner)

2.安装环境

1.需要Mysql数据库支持;虽然SonarQube自带了H2数据库,但是为了方便管理数据推荐使用Mysql数据库。
   安装Mysql数据库

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;

2.安装SonarQube

    第一步:将下载的sonarqube-6.7.5.zip解压后移动到/usr/local目录下

                   unzip  sonarqube-6.7.5.zip  解压包(如果解压不了,可能你没有unzip。通过yum下就可以了)

    第二部:配置环境变量

[root@localhost local]# vim /etc/profile

export SONAR_HOME=/usr/local/sonarqube-6.7.5
export SONAR_SCANNER_HOME=/usr/local/sonar-scanner
PATH=$PATH:$SONAR_HOME/bin:$SONAR_RUNNER_HOME/bin

[root@localhost local]# source /etc/profile

   第三步:配置sonar.properties  (图片是别的地方的,我用的ssh效果不好。哈哈)

[root@localhost local]# vim sonarqube-6.7.5/conf/sonar.properties 

 

 

#数据库的账号密码,刚才创建的
sonar.jdbc.username=sonar       
sonar.jdbc.password=sonar
#连接数据库
sonar.jdbc.url=jdbc:mysql://192.168.6.178:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
#驱动程序类名,其实可以不写的
sonar.jdbc.driverClassName=org.gjt.mm.mysql.Driver
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin

#开启端口
sonar.web.port=9000

3.启动SonarQube (重点,这块最tm坑了)

 SonarQube 启动不能用root启动,所以新建一个用户。必须先启动elasticsearch,才能在启动sonar。sonar文件目录里面有

 elasticsearch这个目录。(这块好好看着,我在这坑了两天。)

//创建esuser用户
//目录组和用户都是esuser
//sonarqube文件设置777
//编写配置文件
[root@localhost ]# useradd esuser
[root@localhost local]# chown -R esuser.esuser sonarqube-6.7.5
[root@localhost local]#chmod 777 -R sonarqube-6.7.5 
[root@localhost local]# vim sonarqube-6.7.5/elasticsearch/config/elasticsearch.yml 
//开启端口和指定服务
network.host: 192.168.6.178
http.port: 9200

 

 

[root@localhost sonarqube-6.7]# su esuser          切换用户
[esuser@localhost elasticsearch]# ./bin/elasticsearch

启动的时候会报错,这里面有报错的资料。

https://blog.csdn.net/u012448904/article/details/81624037

[esuser@localhost elasticsearch]# ./bin/elasticsearch -d     -d代表后台运行

netstat   -nultp  查看端口,能看到9200和9300证明就成功了。

访问:http://192.168.6.178:9200              能给你一个json的文件。

启动sonar(用esuser启动的哈)

[esuser@localhost sonarqube-6.7.5]# ./bin/linux-x86-64/sonar.sh start

访问:http://192.168.6.178:9000/

如果能访问,先按插件在sonar,要不然没插件不行。

Chinese Pack       中文汉化
SonarJava         java的扫描,如果是php等等下载对应的就好了

4.安装SonarQube Runner和配置

//解压文件
//进入文件
//编辑文件
[root@localhost local]#unzip  sonar-scanner-cli-3.0.3.778-linux.zip
[root@localhost local]#mv sonar-scanner-cli-3.0.3.778-linux  sonar-scanner
[root@localhost local]# cd sonar-scanner
[root@localhost sonar-scanner]# vim conf/sonar-scanner.properties 
#Configure here general information about the environment, such as SonarQube DB details for example
#No information about specific project should appear here



#----- Default source code encoding
sonar.sourceEncoding=UTF-8

sonar.host.url=http://192.168.6.178:9000
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://192.168.6.178:3306/sonar?useUnicode=true&characterEncoding=utf8
sonar.login=admin
sonar.password=admin

 我的项目放在/root/java/sell 目录下来了,项目放在那都行的。

创建一个sonar-project.properties 

[root@localhost sell]# vim sonar-project.properties 

#项目的key
sonar.projectKey=itil:change   
#项目的名字(可以随便写,这个名字在sonar显示的)
sonar.projectName=sell
#项目的版本
sonar.projectVersion=1.0
#需要分析的源码的目录
sonar.sources=src/
#这是target(如果没编译可以不写)
sonar.java.binaries=target/classes
#java语言
sonar.language=java
#编码格式
#sonar.sourceEncoding=UTF-8

 

 //开始扫描,
[root@localhost sell]# /usr/local/sonar-scanner/bin/sonar-scanner 

 这是就是成功了。

linux用的还不是很熟练,有的东西可以更加简便的。

enkins+git 持续集成之重头安装到持续集成(一)

SonarQube和sonar-scanner详细安装及配置(二)

sonar jenkins 完美对接(三)    

jenkins整合的话。我是程序员s

 

;