關於Java開發過程中品質提升-2自動化

來源:互聯網
上載者:User

標籤: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自動化

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.