docker上搭建SonarQube + Maven+Jenkins

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

jdk1.8

mysql5.7

maven?3.3.9

下載sonar相關(guān)安裝包

服務(wù)端:

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.27谓着,下載之后將插件放到sonarqube的extensions/plugins目錄下旗国,重啟sonar即可围段。

將sonarqube漓库、sonar-runner包解壓到/usr/local/下

>>unzip?sonar-runner-dist-2.4.zip

>>unzip?sonarqube-7.7.zip

安裝mysql:

docker上安裝mysql5.6

創(chuàng)建sonar數(shù)據(jù)庫

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'@'%' ;

mysql> CREATE USER 'sonar'@'localhost'? IDENTIFIED BY 'sonar';

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

mysql> FLUSH PRIVILEGES;

修改配置文件

>>vim? ?/usr/local/sonarqube-7.7/conf/sonar.properties

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

sonar.jdbc.username=snoar

sonar.jdbc.password=snoar

sonar.web.host=ip地址 #docker的IP

sonar.web.port=9000

>>vim /usr/local/sonarqube-7.7/conf/wrapper.conf

wrapper.java.command=/usr/bin/java ##把wrapper.java.command修改成本機(jī)的jdk1.8路徑

>>vim sonar-runner-2.4/conf/sonar-runner.properties

sonar.host.url=http://ip:9000

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

sonar.jdbc.username=sonar

sonar.jdbc.password=sonar

sonar.sourceEncoding=UTF-8

sonar.login=admin

sonar.password=admin

配置環(huán)境變量

>>vim ~/.zshrc

export SONAR_HOME=/usr/local/sonarqube-7.7

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

export PATH=$PATH:$SONAR_RUNNER_HOME/bin

啟動(dòng)SonarQube

SonarQube不能以root用戶啟動(dòng)雷逆,所以必須先創(chuàng)建一個(gè)非root用戶

>>useradd sonar

>>chown -R sonar:sonar?sonarqube-7.7/

啟動(dòng):

?>>su sonar

>>./usr/local/sonarqube-6.7.4/bin/linux-x86-64/sonar.sh start

關(guān)閉:

>>./usr/local/sonarqube-6.7.4/bin/linux-x86-64/sonar.sh stop

查看啟動(dòng)日志:

>>tail -f /usr/local/sonarqube-7.7/logs/sonar.log

登錄http://ip:9000

Maven項(xiàng)目執(zhí)行sonar掃描

如下瓢对,在maven的 setting.xml中加入SonarQube連接的配置

<pluginGroups>

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

</pluginGroups>

<profiles>

? <profile>

? ? ? ? ? <id>sonar</id>

? ? ? ? ? <activation>

? ? ? ? ? ? ? <activeByDefault>true</activeByDefault>

? ? ? ? ? </activation>

? ? ? ? ? <properties>

? ? ? ? ? ? ? <sonar.host.url>http://localhost:9000</sonar.host.url>

? ? ? ? ? ? ? <sonar.jdbc.url>

? ? ? ? ? ? ? jdbc:mysql://localhost:3306/sonar?useUnicode=true&amp;characterEncoding=utf8

? ? ? ? ? ? ? </sonar.jdbc.url>

? ? ? ? ? <sonar.jdbc.username>sonar</sonar.jdbc.username>

? ? ? ? ? <sonar.jdbc.password>sonar</sonar.jdbc.password>

? ? ? ? ? </properties>

? </profile>

<profiles>

在需要掃描的目標(biāo)項(xiàng)目的pom.xml中引入sonar-maven-plugin 插件?

<plugin>

? ? <groupId>org.sonarsource.scanner.maven</groupId>

? ? <artifactId>sonar-maven-plugin</artifactId>

? ? <version>3.6.0.1398</version>

</plugin>

在項(xiàng)目根目錄下執(zhí)行如下命令逛犹,成功之后即可生成sonar報(bào)告,可以去 web頁面查看分析結(jié)果報(bào)告:

>>?mvn install sonar:sonar -DskipTests

或者 在mvn命令中指定sonar-maven-plugin:

>> mvn clean install org.sonarsource.scanner.maven:sonar-maven-plugin:3.6.0.1398:sonar

Gradle項(xiàng)目執(zhí)行sonar掃描

在項(xiàng)目的根目錄下build.gradle里加入以下配置

buildscript {

? ? repositories {

? ? ? ? mavenCentral()

? //或者 maven {url "https://plugins.gradle.org/m2/"}

? ? }

? ? dependencies {

? ? ? ? classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7.1" //插件后面的版本號(hào)可配

? ? }

}

apply plugin: "org.sonarqube"

sonarqube{

? ? properties{

? ? ? ? property "sonar.host.url", "http://ip:9000"? ? //sonarqube 服務(wù)器地址

? ? ? ? property "sonar.sourceEncoding", "UTF-8"

? ? ? ? property "sonar.sources", "src"

? ? }

}

配置完成之后次企,在根目錄下執(zhí)行:

>>gradle sonarqube --info??

跳過測(cè)試 加 -x testgradle sonarqube -xtest

在docker上搭建Jenkins(已安裝jdk8)

安裝tomcat

1)mkdir -p /usr/local/tomcat8

2)cd /usr/local/tomcat8

3)wget http://www-eu.apache.org/dist/tomcat/tomcat-8/v8.5.41/bin/apache-tomcat-8.5.41.tar.gz ##tomcat壓縮包版本的版本可按需選擇

4)tar -zvxf apache-tomcat-8.5.38.tar.gz -C .

5)cd apache-tomcat-8.5.38/bin

6)./startup.sh #啟動(dòng)tomcat 或 ./shutdown.sh 停止tomcat

7)ps aux | grep tomcat ##查看tomcat是否啟動(dòng)成功


安裝Jenkins到webapps目錄下

>> wgethttp://mirrors.jenkins-ci.org/war/latest/jenkins.war -P /usr/local/tomcat8/apache-tomcat-8.5.41/webapps

訪問Jenkins主頁http://ip:8080/jenkins按說明初始化jenkins即可

1、關(guān)閉Jenkins

http://ip:8080/jenkins/exit

2潜圃、重啟Jenkins

http://ip:8080/jenkins/restart

3缸棵、重新加載配置信息

http://ip:8080/jenkins/reload

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市谭期,隨后出現(xiàn)的幾起案子堵第,更是在濱河造成了極大的恐慌,老刑警劉巖隧出,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件踏志,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡胀瞪,警方通過查閱死者的電腦和手機(jī)针余,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凄诞,“玉大人圆雁,你說我怎么就攤上這事》” “怎么了伪朽?”我有些...
    開封第一講書人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長汛蝙。 經(jīng)常有香客問我烈涮,道長,這世上最難降的妖魔是什么窖剑? 我笑而不...
    開封第一講書人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任坚洽,我火速辦了婚禮,結(jié)果婚禮上西土,老公的妹妹穿的比我還像新娘酪术。我一直安慰自己,他們只是感情好翠储,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開白布绘雁。 她就那樣靜靜地躺著,像睡著了一般援所。 火紅的嫁衣襯著肌膚如雪庐舟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評(píng)論 1 299
  • 那天住拭,我揣著相機(jī)與錄音挪略,去河邊找鬼历帚。 笑死,一個(gè)胖子當(dāng)著我的面吹牛杠娱,可吹牛的內(nèi)容都是我干的挽牢。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼摊求,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼禽拔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起室叉,我...
    開封第一講書人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤睹栖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后茧痕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體野来,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年踪旷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了曼氛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡令野,死狀恐怖舀患,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情彩掐,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布灰追,位于F島的核電站堵幽,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏弹澎。R本人自食惡果不足惜朴下,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望苦蒿。 院中可真熱鬧殴胧,春花似錦、人聲如沸佩迟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽报强。三九已至灸姊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間秉溉,已是汗流浹背力惯。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來泰國打工碗誉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人父晶。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓哮缺,卻偏偏與公主長得像,于是被迫代替她去往敵國和親甲喝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子尝苇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

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

  • 教程:https://www.yiibai.com/jenkins/ 本節(jié)內(nèi)容: Jenkins介紹 安裝部署Je...
    達(dá)微閱讀 9,007評(píng)論 2 77
  • 本文重點(diǎn)說明sonarqube的使用和搭建,以及集成到Jenkins,從因到果進(jìn)行詳細(xì)的說明俺猿。gitLab+Jen...
    GeekSpring閱讀 25,546評(píng)論 1 7
  • 1.SonarQube Sonar的功能:是一個(gè)用于代碼質(zhì)量管理的開源平臺(tái)茎匠,用于管理源代碼的質(zhì)量,可以從七個(gè)維度檢...
    Broom閱讀 9,411評(píng)論 0 6
  • 【練習(xí)四| 可參考記錄格式】 1.列出今天發(fā)生的每一件的事的結(jié)果(至少5-10件) 2.我對(duì)于這件事的結(jié)果怎么評(píng)估...
    閆曉麗314閱讀 123評(píng)論 0 0
  • 前言: 本文兩個(gè)模型是目標(biāo)達(dá)成專家押袍、幸福進(jìn)化俱樂部創(chuàng)始人@易仁永澄老師诵冒,在【在行】app上開設(shè)的目標(biāo)管理入門課程,...
    521杰行天下閱讀 205評(píng)論 0 1