<ul id="qxxfc"><fieldset id="qxxfc"><tr id="qxxfc"></tr></fieldset></ul>


      系列目錄 <https://www.cnblogs.com/tylerzhou/p/11204826.html>

      Jenkins通過插件集成Sonarqube

      通過上一節(jié)我們了解了如何配置以使jenkins
      ci環(huán)境中可以執(zhí)行sonarqube構建,其實Sonarqube官方也提供了jenkins插件以便更方便的管理.使用插件來執(zhí)行sonarqube項目有以下優(yōu)點

      1.可以很清楚的看到項目是Sonarqube項目,如下圖示



      Sonarqube的begin,end不需要手動寫,而是自動選擇,項目名稱,項目版本一目了然.不需要查看cmd信息.有點流水線的感覺.

      2.更好地與Sonarqube集成,請看下圖




      我們可以看到使用Sonarqube插件的項目是這樣的,能夠在jenkins頁面展示項目的狀態(tài)和sonarqube服務端的處理狀態(tài),我們點擊圖中的與sonarqube相關的圖標會自動進入Sonarqube
      web管理頁面,并且自動定位到本項目,這樣如果構建項目特別多的情況下給我們帶來很多方便.

      3.與Jenkins PipeLine集成

      以上僅僅是方便之處,然而并沒有顯示出插件無可取代之處,它的無可取代之處在于使用jenkins PipeLine時必須使用此插件.

      說了這么多,下面介紹如何安裝配置sonarqube Jenkins插件.

      進入Jenkins插件管理界面,切換到'available'界面,輸入sonarQube Scanner
      然后安裝(關于jenkins插件安裝前面章節(jié)有講到,這里不再贅述).安裝完成以后開始配置.

      工具選項配置

      進入Manage Jenkins>Global Tool Configuration

      找到sonarqube for msbuild配置如下


      其中名稱可以隨便選擇,只要方便管理即可.

      再找到sonarqube scanner,配置如下


      配置完成后點擊最下面的save保存

      點擊完保存之后,我們再進入config system找到sonarqube servers配置如下



      serverurl要根據(jù)實際情況配置,如果sonarqube和jenkins并不在同一臺機器,則需要配置ip地址.

      下面我們新建一個自由式任務.名稱為mysonar(名稱隨意)
      進入到Build欄目,點擊Add Build Steps
      ,我們從來拉列表中選擇Sonarqube開始標識(通過前面的章節(jié)我們了解到,sonarqube構建包括開始標記,結束標記,然后中間是msbuild構建)



      點擊后會出現(xiàn)以下配置項,按實際情況配置即可


      指定項目名,key(key可以任意起名,只做為惟一標識,并不是ssh登陸類似的key)

      然后再新建一個執(zhí)行bat的步驟.如下圖



      這里很普通,指定一個要編譯的項目,需要注意的是我這里有環(huán)境變量msbuild,如果找不到請?zhí)砑迎h(huán)境變量或者指定msbuild完整路徑.

      然后再添加一個步驟,這次選擇SonarScanner for msbuild -end analysis.

      然后點擊確定完成創(chuàng)建,我們點擊build now觸發(fā)一次構建.

      構建成功后信息如下圖


      我們點擊紅色框先的任意一項,就可以跳轉(zhuǎn)到sonarqube web管理界面,如下圖示



      需要注意的是第一次運行并不能構建成功,這是因為Jenkins需要下載相關插件,插件下載成功后我們進入
      Jenkins\tools\hudson.plugins.sonar.MsBuildSQRunnerInstallation目錄下的你的
      SonarScanner for MSBuild的名字,它就是你在Global Tool Configuration>SonarScanner for
      MSBuild指定的名稱,進去以后找到SonarQube.Analysis.xml對它進行配置,關于此文件的配置前面我們講到過,這里不再贅述.

      Sonarqube插件集成單元測試覆蓋報告

      回憶前面章節(jié),添加sonarqube單元測試覆蓋率報告需要額外執(zhí)行一步運行單元測試的代碼,這并不是重點,重點在于如何在Begin Analysis
      部分指定單元測試執(zhí)行文件,這里通過指定Additional arguments來實現(xiàn),如下圖示



      然后再在msbuild構建完成后添加一步執(zhí)行單元測試的代碼(可以復制前面的代碼)就行了,這里需要說明的是前面為了方便講解我們是在項目目錄下執(zhí)行腳本,使用了
      %CD%這樣的相對路徑,Jenkins中建議換成絕對路徑,以防出現(xiàn)不必要的麻煩.

      完了再進入Sonarqube web管理界面,就可以看到有單元測試覆蓋率報告了



      Token方式與Sonarqube server交互

      上一節(jié)我們講解了通過配置SonarQube.Analysis.xml方式實現(xiàn)與Sonarqube
      server交互(實際上我們執(zhí)行構建的時候sonarqube runner是通過http方式把數(shù)據(jù)提交到sonarqube
      server),這樣做有非常明顯的缺點.第一是安全問題,我們知道其實我們是把admin的用戶名和密碼寫入了SonarQube.Analysis.xml
      文件里,這樣很容易暴露管理員賬戶,在企業(yè)生產(chǎn)環(huán)境中,如果有惡意的人獲取了管理員賬戶,則可以進行任意構建,然后觸發(fā)布,這樣會造成非常嚴重的后果,即使被沒有惡意的開發(fā)者獲取到,開發(fā)者可能出于好奇心在生產(chǎn)環(huán)境中進行測試嘗試,這樣也可能會造成非常嚴重的后果.第二是管理很不方便,如果在生產(chǎn)環(huán)境的jenkins是分布式的,那么我們進入每一臺服務器更改配置文件是很不方便的,如果管理員賬戶和密碼更改了還要進入每臺服務器更改,雖然現(xiàn)在有各種自動化的工具使得這種操作不是特別麻煩的問題,但是集中的配置更加方便維護.下面我們講解如何通過在Jenkins中為Sonarqube
      server添加token來解決以上兩個問題.

      在Sonarqube里生成token

      首先需要說明的是,只有管理員賬戶可以生成token,其它賬戶不可進行此操作.我們進入sonarqube web管理界面,執(zhí)行以下操作



      進入我的賬戶后security標簽,可以看到如下界面



      我們在紅框內(nèi)的文本框里輸入key的名字,此時Generate按鈕變?yōu)榧せ顮顟B(tài),我們點擊一下就可以生成一個token



      我們點擊copy
      或者直接復制把token存儲到文本文檔或者其它地方,需要注意的是token必須保存,退出這個頁面后token的值就會消失(這里說的消失是指不再顯示,而不是真正的
      消失).

      把生成的token添加到Jenkins里

      我們再回到jenkins,進入Manage Jenkins>configure system找到SonarQube servers把token粘貼到
      Server authentication token



      需要注意的時,如果已經(jīng)在SonarQube.Analysis.xml配置了賬號密碼,則需要刪除掉,即刪除以下代碼
      <Property Name="sonar.login">admin</Property> <Property
      Name="sonar.password">admin</Property>

      友情鏈接
      ioDraw流程圖
      API參考文檔
      OK工具箱
      云服務器優(yōu)惠
      阿里云優(yōu)惠券
      騰訊云優(yōu)惠券
      京東云優(yōu)惠券
      站點信息
      問題反饋
      郵箱:[email protected]
      QQ群:637538335
      關注微信

        <ul id="qxxfc"><fieldset id="qxxfc"><tr id="qxxfc"></tr></fieldset></ul>
          情色开心网 | 波多野结衣国产一区二区三区 | 啊…高潮了 | 欧美黄色大片免费在线观看 | 男女搞黄视频 | 五月天丁香社区 | 人妻资源网| 看操逼视频| а 天堂 在线 | 淫爽综合 |