標籤:config 工具 load dsv 操作 slaves 檔案 資料 項目構建
開發人員寫代碼過程中就實現自動代碼檢視,編輯器會提示編碼規範錯誤,並給出正確執行個體,寫完代碼只需要提交到SVN庫,然後啟動自動化構建(可配置代碼提交SVN後自動觸發),測試環境中的項目馬上和當前SVN庫一致。告別專門召集代碼檢視會議(或只需要檢視商務程序)、告別手工編譯打包、安裝。
----------------------------------------------------------------------------------從word檔案copy出來,懶得弄圖片了,so 無圖。
第一章Jenkins配置
jenkins是一個廣泛用於持續構建的可視化web工具,持續構建說得更直白點,就是各種項目的"自動化"編譯、打包、分發部署。jenkins可以很好的支援各種語言(比如:java, c#, php, python等幾乎所有語言)的項目構建,也完全相容ant、maven、gradle等多種第三方構建工具,同時跟svn、git能無縫整合,也支援直接與知名原始碼託管網站,比如github、bitbucket直接整合。
jenkins本身是用java語言開發的,所以安裝jenkins的機器至少要有jdk,另外建議git/svn、ant/maven/gradle等工具也一併安裝好,方便與這些構建工具整合。
1.1 安裝Jenkins
可以直接在jenkins官方網站上:https://jenkins.io/index.html
下載jenkins的檔案jenkins.war檔案
有兩種啟動方法。
首先保證系統中已經安裝了jdk,最好是jdk1.8, 並配置好環境變數。
第一種啟動方法,切換到jenkins.war存放的目錄,輸入如下命令:
$ java -jar jenkins.war
然後在瀏覽器中輸入http://localhost:8080,localhost可以是原生ip,也可以是電腦名稱。就可以開啟jenkins
第二種方法是用jetty開啟
將jenkins.war檔案放入jetty下的webapps目錄下,啟動jenkins時,在地址欄上輸入
http://localhost:8080/jenkins 就可以訪問
1.2 配置Jenkins
由於Jenkins配置在網上資料很多,這裡只列出關鍵操作:
1、 登入Jenkins,選擇“系統管理->外掛程式管理->可選外掛程式”,安裝如下外掛程式;
a) 郵件外掛程式:Email Extension Plugin
b) Maven外掛程式:Maven Integration plugin
c) SVN外掛程式:SVN Publisher plugin
d) SSH外掛程式:SSH plugin/Publish Over SSH
剛安裝需要等一會兒才有外掛程式列表,如果安裝失敗就看下失敗原因,一般是因為有依賴外掛程式未安裝(在外掛程式管理中選擇的都會自動把依賴外掛程式一起安裝好),只需安裝提示外掛程式即可,有時候也會因為網路原因需要安裝多次才能裝上。
2、 完成外掛程式安裝後,選擇“系統管理->系統設定”,配置郵件和相關伺服器資訊即可
Remote Directory是指定SSH進入的目錄,注意先確認使用者是否有許可權。
3、 完成系統配置後,選擇“系統管理-> Global Tool Configuration”,配置JDK和Maven
JDK和Maven需要預先安裝好,然後再這裡指定安裝目錄。
1.3 建立Job
1、建立項目
a)登入Jenkins,選擇“建立”,輸入項目名稱後選擇“建立一個自由式饒舌的軟體項目”
b)進入上面建的Job,選擇“配置”,進入配置介面
c)配置“丟棄舊的構建”
這裡主要是配置構建任務的保留數
d)配置“源碼管理”和“構建觸發器”
如果公司的SVN庫被加密,所以這裡選擇“None”,後面步驟中採用將代碼下載到“/home/XXX/.jenkins/workspace/Job名稱”目錄中。
選擇“Build periodically”可以定時啟動構建任務,比如每天淩晨1點啟動構建,另外“Poll SCM”是定時檢查源碼庫提交情況來啟動構建,由於這裡沒有使用源碼管理,所以該選項用不上。如果有源碼管理,該配置會根據指定頻率檢測代碼變化,觸發構建。
e)配置“構建環境”
i.如果公司SVN被加密,SVN外掛程式不能用,所以在構建前先到伺服器下載代碼,選擇“Send files or execute commands over SSH before the build starts”指定構建伺服器,調用下載代碼的指令碼sh buildSVN.sh jobID svnURL例如:“sh /home/XXX/jenkins/build/buildSVN.sh JOBID SVNURL”。
ii. 接上面完成代碼下載後,可以選擇“Add Transfer Set”再加一個,到安裝伺服器上執行安裝前資料清理操作。
iii. 完成前置操作之後,就可以配置打完包之後的操作了,選擇“Send files or execute commands over SSH after the build runs”是在打完包之後進行的操作,由於項目的發布/轉測試模式是打完包後,直接發郵件通知組態管理員到打包目錄擷取軟體包,然後組態管理員根據軟體包中的SVN版本號碼進行打分支,所以這需要做軟包添加SVN版本號碼的處理
iv.完成軟體包處理之後,就可以將軟體包上傳到安裝伺服器上進行安裝了,這裡支援叢集安裝,有多少個叢集只需要選擇添加多個“Add Transfer Set”就行了
自動安裝得先有自動安裝指令碼,這裡也就是解壓、調用setup.sh指令碼
f)最後就是配置“構建”和“構建後的操作”
配置maven編譯、打包工具, 郵件根據實際情況配置即可,其他不需要編譯的非Java項目,可以不需要配“構建”選項
構建後操作,選擇郵件組件,然後加上需要發送和抄送人
2、 完成配置後,直接選擇“儲存”,然後選擇“立即構建”
a) 選擇自動建立的構建任務,可以查看任務執行情況
b) 進入“Console Output”查看即時構建資訊
至此,整個Jenkins操作完成!
1.4 注意事項
1、 只搭一套環境,大家都統一使用這一套即可,不要再重複維護其他的環境,直接在該環節建立Job即可,方便統一管理。
2、 啟動後所有檔案都存貯在 /home/使用者名稱/.jenkins 目錄下,可以通過備份/.jenkins/job/項目名/config.xml檔案來保留配置。
3、 請不要隨意修改其他人的Job,建立自己的就好。
第二章SonarQube配置
Sonar是一個用於代碼品質管理的開源平台,用於管理原始碼的品質,可以從七個維度檢測代碼品質,通過外掛程式形式,可以支援包括java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy,Python等等二十幾種程式設計語言的代碼品質管理與檢測。
2.1安裝SonarQube預置條件
1、 已安裝Java環境
2、 已安裝有資料庫(支援多種資料庫,我們這裡用公司統一的PostgreSQL)
3、 軟體:http://www.sonarqube.org/downloads/
4、 下載SonarQube與SonarQube Runner
5、 資料庫配置:
進入資料庫命令
su postgres
psql
create user sonar with password ‘sonar‘;
create database sonar owner sonar;
grant all privileges on database sonar to sonar;
2.2安裝SonarQube和 sonar-runner
安裝sonar與sonar-runner
a) 將下載的sonar-3.7.zip包解壓至Linux某路徑如/usr/local
b) 將下載的sonar-runner-dist-2.3.zip包解壓某路徑/usr/local
c) 添加SONAR_HOME、SONAR_RUNNER_HOME環境變數,並將SONAR_RUNNER_HOME加入PATH
d) 修改sonar設定檔
修改/conf/sonar.properties檔案,設定資料庫設定,預設已經提供了各類資料庫的支援
這裡使用PostgreSQL,因此取消PostgreSQL模組的注釋,然後
e) 修改sonar-runner的設定檔
修改/conf/sonar-scanner.properties檔案
2.3配置SonarQube
1、 執行安裝目標下/bin/linux-x86-64/sonar.shstart|stop|restart 就可以進行啟停重啟操作。
2、 啟動服務後訪問http:\\localhost:9000即可
3、 登入SonarQube伺服器後,可以查看項目中的問題、指標,並可以對代碼規則、品質配置、品質閥和系統進行設定
4、其中品質配置和品質閥都可以每個項目建立自己的標準,然後在項目指定即可
5、 如果有些指標項目需要調整,可以直接在問題中對相關指標進行修改
6、 修改完指標和閥值後重新運行sonar-runner就會根據最新規則進行分析
2.4配置sonar-runner
1、在項目源碼的根目錄下建立sonar-project.properties設定檔,檔案內容如下
sonar.projectKey=項目名
sonar.projectName=Simple Android project analyzed with the SonarQube Runner
sonar.projectVersion=1.0
sonar.sources=src
sonar.binaries=bin/classes
sonar.language=java
sonar.sourceEncoding=UTF-8
這裡language可以是C/C++/Python等其他語言
2、因為環境變數已配置,可在任意目錄下執行sonar-runner命令,運行完成後登入到SonaQube,就可以查看剛剛添加的項目分析情況了
2.5Eclipse配置SonarLint外掛程式(Java)
1、開啟eclipse,進入help->Eclipse Marketplace,輸入sonar,安裝sonarLint
2、完成安裝重啟eclipse後,在window->show view中選擇Sonar三個視圖
3、在SonarQubeService中配置SonarQube服務資訊
4、最後右擊項目工程,選擇SonarLint->build…然後選擇對應的項目(可以在Sonar服務上配置好項目,供這裡選擇,也可以不配置)
5、最後開啟類檔案就可以看到即時的分析結果了
該操作只用於eclipse,其他項目可以使用sonar-runner分析後登入SonarQube伺服器上查看分析結果。
2.6注意事項
1、 只搭一套環境,大家都統一使用這一套即可,不要再重複維護其他的環境,直接在該環節建立Job即可,方便統一管理。
2、 每個項目可以到SonarQube伺服器定製自己的編碼規範,都建立自己項目的,其他項目的不要動。
3、 Jenkins自動化過程中,調用SVN代碼下載之後會調用自動程式碼分析,需要注意在代碼根目錄添加sonar-project.properties設定檔。
關於Java開發過程中品質提升-2自動化