SonarQube安裝和使用

一、環(huán)境準(zhǔn)備

安裝環(huán)境為centos6.5,需要準(zhǔn)備的軟件有sonarqube逝变、sonar-scanner基茵、jdk1.8.0奋构、mysql。sonarqube也支持oracle(11g/12c)拱层、postgresql(8.x/9.x)弥臼、SqlServer(2008/2012/2014 and SQL Azure)、mysql(5.6以上)多種數(shù)據(jù)庫根灯。此案例選擇mysql径缅。

1.1 SonarQube

下載地址:https://www.sonarqube.org/downloads/ 。目前官網(wǎng)最新版本為7.5烙肺,BI目前使用的版本為7.5纳猪。

1.2 JDK

官網(wǎng)信息,需要用到j(luò)dk1.8,如果你的環(huán)境已經(jīng)配置了JAVA_HOME是jdk1.7桃笙,沒關(guān)系我們可以手動(dòng)指定sonar的運(yùn)行jdk為1.8(后面配置的時(shí)候說明)氏堤。

1.3 MySQL

1.檢測系統(tǒng)是否自帶安裝mysql

yum list installed | grep mysql

2.如果發(fā)現(xiàn)有系統(tǒng)自帶mysql,先卸載

yum -y remove mysql-libs.x86_64

3.下載mysql的yum源

wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm

4.接著執(zhí)行一下命令添加yarn源,在/etc/yum.repos.d/這個(gè)目錄下多出mysql-community-source.repo和mysql-community.repo

rpm -ivh mysql-community-release-el6-5.noarch.rpm

5.查看一下是否已經(jīng)有mysql可安裝文件

yum repolist all | grep mysql

6.安裝mysql服務(wù)器命令(一路yes):

yum install mysql-community-server

7.安裝成功后

service mysqld start

8.由于mysql剛剛安裝完的時(shí)候搏明,mysql的root用戶的密碼默認(rèn)是空的鼠锈,所以我們需要及時(shí)用mysql的root用戶登錄(第一次回車鍵闪檬,不用輸入密碼),并修改密碼

mysql -u root;
use mysql;
update user set password=PASSWORD("這里輸入root用戶密碼") where User='root';
flush privileges;

9.查看mysql是否自啟動(dòng),并且設(shè)置開啟自啟動(dòng)命令

chkconfig --list | grep mysqld
chkconfig mysqld on

10.mysql 添加sonar用戶

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;

二购笆、SonarQube安裝

1.新建一個(gè)用戶

groupadd sonar
useradd sonar -g sonar -p sonar

2.新建sonarqube目錄

mkdir -p /usr/local/sonarqube
chown  sonar:sonar /usr/local/sonarqube

3.使用sonar解壓軟件包到目錄/usr/local/sonarqube

su - sonar
unzip -d /usr/local/sonarqube  sonarqube-7.5.zip

4.配置JDK

vi /usr/local/sonarqube/sonarqube-7.5/conf/wrapper.conf 
wrapper.java.command=/usr/java/default
wrapper.java.command=java

5.配置數(shù)據(jù)庫賬號

vi /usr/local/sonarqube/sonarqube-7.5/conf/sonar.properties 
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.jdbc.url=jdbc:mysql://172.17.213.205:3306/sonar?useUnicode=true&characterEncoding=utf8&useConfigs=maxPerformance&rewriteBatchedStatements=true
sonar.web.host=172.17.213.205
sonar.web.context=/sonarqube
sonar.web.port=9000
sonar.login=admin
sonar.password=admin

6.啟動(dòng)SonarQube
/usr/local/sonarqube/sonarqube-7.5/bin/linux-x86-64/sonar.sh start

7.查看啟動(dòng)日志
tail -200f ./logs/sonar.log

<-- Wrapper Stopped
--> Wrapper Started as Daemon
Launching a JVM...
Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
  Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.

2019.01.03 14:20:22 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /usr/local/sonarqube/sonarqube-7.5/temp
2019.01.03 14:20:22 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
2019.01.03 14:20:22 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/usr/local/sonarqube/sonarqube-7.5/elasticsearch]: /usr/local/sonarqube/sonarqube-7.5/elasticsearch/bin/elasticsearch -Epath.conf=/usr/local/sonarqube/sonarqube-7.5/temp/conf/es
2019.01.03 14:20:22 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
2019.01.03 14:20:23 INFO  app[][o.e.p.PluginsService] no modules loaded
2019.01.03 14:20:23 INFO  app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
2019.01.03 14:20:33 INFO  app[][o.s.a.SchedulerImpl] Process[es] is up
2019.01.03 14:20:33 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='web', ipcIndex=2, logFilenamePrefix=web]] from [/usr/local/sonarqube/sonarqube-7.5]: /usr/java/default/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/usr/local/sonarqube/sonarqube-7.5/temp -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -cp ./lib/common/*:/usr/local/sonarqube/sonarqube-7.5/lib/jdbc/mysql/mysql-connector-java-5.1.46.jar org.sonar.server.app.WebServer /usr/local/sonarqube/sonarqube-7.5/temp/sq-process7626714452449040716properties
2019.01.03 14:20:49 INFO  app[][o.s.a.SchedulerImpl] Process[web] is up
2019.01.03 14:20:49 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='ce', ipcIndex=3, logFilenamePrefix=ce]] from [/usr/local/sonarqube/sonarqube-7.5]: /usr/java/default/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/usr/local/sonarqube/sonarqube-7.5/temp -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -cp ./lib/common/*:/usr/local/sonarqube/sonarqube-7.5/lib/jdbc/mysql/mysql-connector-java-5.1.46.jar org.sonar.ce.app.CeServer /usr/local/sonarqube/sonarqube-7.5/temp/sq-process4454811775570944598properties
2019.01.03 14:20:54 INFO  app[][o.s.a.SchedulerImpl] Process[ce] is up
2019.01.03 14:20:54 INFO  app[][o.s.a.SchedulerImpl] SonarQube is up
2019.01.03 14:26:21 INFO  app[][o.s.a.SchedulerImpl] Process [ce] is stopped
2019.01.03 14:26:24 INFO  app[][o.s.a.SchedulerImpl] Process [web] is stopped
2019.01.03 14:26:24 WARN  app[][o.s.a.p.AbstractProcessMonitor] Process exited with exit value [es]: 143
2019.01.03 14:26:24 INFO  app[][o.s.a.SchedulerImpl] Process [es] is stopped
2019.01.03 14:26:24 INFO  app[][o.s.a.SchedulerImpl] SonarQube is restarting
2019.01.03 14:26:24 WARN  app[][o.s.a.p.AbstractProcessMonitor] Process exited with exit value [es]: 143
2019.01.03 14:26:24 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /usr/local/sonarqube/sonarqube-7.5/temp
2019.01.03 14:26:24 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
2019.01.03 14:26:24 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/usr/local/sonarqube/sonarqube-7.5/elasticsearch]: /usr/local/sonarqube/sonarqube-7.5/elasticsearch/bin/elasticsearch -Epath.conf=/usr/local/sonarqube/sonarqube-7.5/temp/conf/es
2019.01.03 14:26:24 INFO  app[][o.e.p.PluginsService] no modules loaded
2019.01.03 14:26:24 INFO  app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
2019.01.03 14:26:34 INFO  app[][o.s.a.SchedulerImpl] Process[es] is up
2019.01.03 14:26:34 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='web', ipcIndex=2, logFilenamePrefix=web]] from [/usr/local/sonarqube/sonarqube-7.5]: /usr/java/default/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/usr/local/sonarqube/sonarqube-7.5/temp -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -cp ./lib/common/*:/usr/local/sonarqube/sonarqube-7.5/lib/jdbc/mysql/mysql-connector-java-5.1.46.jar org.sonar.server.app.WebServer /usr/local/sonarqube/sonarqube-7.5/temp/sq-process4648446057353788693properties
2019.01.03 14:26:49 INFO  app[][o.s.a.SchedulerImpl] Process[web] is up
2019.01.03 14:26:49 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='ce', ipcIndex=3, logFilenamePrefix=ce]] from [/usr/local/sonarqube/sonarqube-7.5]: /usr/java/default/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/usr/local/sonarqube/sonarqube-7.5/temp -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -cp ./lib/common/*:/usr/local/sonarqube/sonarqube-7.5/lib/jdbc/mysql/mysql-connector-java-5.1.46.jar org.sonar.ce.app.CeServer /usr/local/sonarqube/sonarqube-7.5/temp/sq-process6942946129035618556properties
2019.01.03 14:26:55 INFO  app[][o.s.a.SchedulerImpl] Process[ce] is up
2019.01.03 14:26:55 INFO  app[][o.s.a.SchedulerImpl] SonarQube is up

訪問http://IP:9000/sonar 看到歡迎界面即成功粗悯。

0.png

8.漢化SonarQube
使用admin/admin賬號登錄,選擇Marketplace同欠,找到Chinese Pack屁桑,點(diǎn)擊install安裝語言包,然后重啟server帮毁,重新加載頁面就完成漢化汛蝙。

1.png

三、Maven配置SonarQube

1.安裝Maven

mkdir -p /usr/local/maven3
cd /root/software
wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
tar zxf apache-maven-3.5.4-bin.tar.gz
mv apache-maven-3.5.4 /usr/local/maven3

2.配置環(huán)境變量娃循。

vi /etc/profile
export M2_HOME=/usr/local/maven3/apache-maven-3.5.4
export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin

3.保存退出后運(yùn)行下面的命令使配置生效炕檩,或者重啟服務(wù)器生效。

source /etc/profile

4.驗(yàn)證版本

mvn -v

5.安裝maven,配置maven環(huán)境變量(過程略)捌斧。
要實(shí)行對maven項(xiàng)目的管理笛质,還需要配置maven的setting.xml文件。
配置如下:

<profile>    
     <id>sonar</id>  
     <activation>  
     <activeByDefault>true</activeByDefault>  
     </activation>  
      <properties>  
     <!-- database-->  
   <sonar.jdbc.url>jdbc:mysql://172.17.213.205:3306/sonar</sonar.jdbc.url>  
   <sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>  
   <sonar.jdbc.username>sonar</sonar.jdbc.username>  
   <sonar.jdbc.password>sonar</sonar.jdbc.password>  
    <!-- Optional URL to server. Default value is http://localhost:9000 -->  
   <sonar.host.url>http://172.17.213.205:9000</sonar.host.url> 
   <sonar.login>admin</sonar.login>
   <sonar.password>admin</sonar.password> 
     </properties>  
 </profile>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末捞蚂,一起剝皮案震驚了整個(gè)濱河市妇押,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌姓迅,老刑警劉巖敲霍,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異丁存,居然都是意外死亡肩杈,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門解寝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扩然,“玉大人,你說我怎么就攤上這事聋伦》蚺迹” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵觉增,是天一觀的道長兵拢。 經(jīng)常有香客問我,道長逾礁,這世上最難降的妖魔是什么说铃? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上截汪,老公的妹妹穿的比我還像新娘疾牲。我一直安慰自己,他們只是感情好衙解,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布阳柔。 她就那樣靜靜地躺著,像睡著了一般蚓峦。 火紅的嫁衣襯著肌膚如雪舌剂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天暑椰,我揣著相機(jī)與錄音霍转,去河邊找鬼。 笑死一汽,一個(gè)胖子當(dāng)著我的面吹牛避消,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播召夹,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼岩喷,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了监憎?” 一聲冷哼從身側(cè)響起纱意,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鲸阔,沒想到半個(gè)月后偷霉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡褐筛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年类少,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片死讹。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瞒滴,死狀恐怖曲梗,靈堂內(nèi)的尸體忽然破棺而出赞警,到底是詐尸還是另有隱情,我是刑警寧澤虏两,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布愧旦,位于F島的核電站,受9級特大地震影響定罢,放射性物質(zhì)發(fā)生泄漏笤虫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望琼蚯。 院中可真熱鬧酬凳,春花似錦、人聲如沸遭庶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽峦睡。三九已至翎苫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間榨了,已是汗流浹背煎谍。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留龙屉,地道東北人呐粘。 一個(gè)月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像转捕,于是被迫代替她去往敵國和親事哭。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容