jenkins svn/git sonarqube scanner 代码集成测试
大家好,我是烤鴨:
? ? 今天分享一個(gè)代碼檢測(cè)工具sonar,在jenkins集成的時(shí)候使用。
環(huán)境:
? ?sonarqube 7.1
? ?jenkins 2.12x
???sonarqube scanner (官網(wǎng)最新版3.2.0.1227)
1.? ? jenkins? svn/git 搭建項(xiàng)目
????https://blog.csdn.net/Angry_Mills/article/details/78539826
????????
2.????sonarqube 安裝
? ? 2.1? ? 下載?SonarQube 7.1
????????https://www.sonarqube.org/downloads/
? ? 2.2? ? 解壓
? ? 2.3? ? 修改配置文件
? ??官方文檔? ? :????https://docs.sonarqube.org/display/SONAR/Installing+the+Server
?? ?修改后的配置文件如下:
? ? 配置了mysql和修改了啟動(dòng)端口和es端口。注意mysql必須是5.6+。
# Permissions to create tables, indices and triggers must be granted to JDBC user. # The schema must be created first. sonar.jdbc.username=root sonar.jdbc.password=root123#----- MySQL 5.6 or greater # Only InnoDB storage engine is supported (not myISAM). # Only the bundled driver is supported. It can not be changed. sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false# Web context. When set, it must start with forward slash (for example /sonarqube). # TCP port for incoming HTTP connections. Default value is 9000. sonar.web.port=9202# Elasticsearch port. Default is 9001. Use 0 to get a free port. # As a security precaution, should be blocked by a firewall and not exposed to the Internet. sonar.search.port=9010????????2.4??? 啟動(dòng)
cd /opt/sonar/sonarqube-7.1/bin/linux-x86-64 ./sonar.sh start????????2.5? ? 啟動(dòng)失敗原因
????? ? ????2.5.1?????es.log
????? ? 最開始是es.log中的這個(gè)
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root????? ? 由于sonar的啟動(dòng)需要同時(shí)啟動(dòng)es和web,所以需要檢查這里es.log和web.log,加上sonar.log。
????? ? 上面這個(gè)異常是es的啟動(dòng)時(shí)候的,切換非root用戶啟動(dòng)就可以了。
#創(chuàng)建用戶組es
#創(chuàng)建用戶組es下的用戶es
#某個(gè)文件夾的權(quán)限給es用戶組和es用戶
?#切換用戶
關(guān)于更多es的異常,請(qǐng)看這個(gè)????elasticsearch 6.x (二) linux部署 kibana x-pack 安裝
????????????? ? 2.5.2? ? web.log
java.lang.IllegalStateException: Fail to execute ES search request 'SearchRequest xxx on indices '[issues]' on types '[issue]????????????? ? 我是刪除了temp目錄和data/es5目錄下的全部。執(zhí)行restart命令。
java.net.BindException: Address already in use????????????????每次啟動(dòng)前先檢查sonar是否停止,有時(shí)候命令停不下來,需要執(zhí)行kill -9命令。
????????? ? 2.5? ? 訪問
????上一張?jiān)L問成功的圖:
????????????
????????????2.5??? 下載漢化插件和修改密碼
????????? ? 我這里已經(jīng)安裝過插件了。
????????????
????? ? 修改密碼
3.? ? sonarqube??scanner?安裝
? ? ? ? sonarqube ?scanner下載地址????https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
????? ?下載、解壓縮跟同上。
????? ? 可以修改配置文件,指定sonarqube的地址,源碼地址等等。
????? ? 如果是和jenkins svn集成,這里什么都不需要更改。在集成設(shè)置配置,每個(gè)項(xiàng)目獨(dú)立配置就好了。
4.? ? 與jenkins集成
????? ? 4.1? ? 安裝sonarqube插件
SonarQube Scanner for Jenkins
Sonargraph Integration Jenkins Plugin(暫時(shí)沒用上)
Quality Gates Plugin(暫時(shí)沒用上)
??????? ? ?
????????4.2? ? 配置sonarqube服務(wù)器
????????????
token在修改密碼那個(gè)頁面生成:
??????????????4.3? ? 修改jenkins集成配置
????????????????
????????? ? sources:最開始我寫的是src/main/java
Caused by: The folder 'src/mian/java' does not exist for 'mytest' (base directory = /root/.hudson/workspace/mytest)????????? ??? ? 然后我去上面的目錄下看了一下,發(fā)現(xiàn)我外層還有一個(gè)web,修改sources和binaries就好了。
?????????????4.4? ????集成成功
????????????????多了個(gè)圖標(biāo),可以鏈接到sonarqube,不過很慢,直接登錄系統(tǒng)看就好了。
????????
?????????????4.5? ????在sonarqube查看項(xiàng)目
????????????
總結(jié)
以上是生活随笔為你收集整理的jenkins svn/git sonarqube scanner 代码集成测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Magento Block设计分析(深入
- 下一篇: LeetCode14 Longest C