1. 程式人生 > >持續整合Jenkins+sonarqube部署教程

持續整合Jenkins+sonarqube部署教程

    新增如下內容,sonar預設自帶mysql驅動。 Js程式碼  收藏程式碼
  1. sonar.jdbc.username=root  
  2. sonar.jdbc.password=11111  
  3. sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true   
  4. sonar.jdbc.driverClassName=com.mysql.jdbc.Driver  

    新的sonarQbude的表相對舊版來說有了新的改動,升級時候需要把舊的表刪除。否則會報以下錯。

Js程式碼  收藏程式碼
  1. exception caught on transport layer [[id: 0xc7fbf08e, /127.0.0.1:55381 => /127.0.0.1:9001]], closing connection    
  2. java.io.IOException: 遠端主機強迫關閉了一個現有的連線。    

4.2 啟動sonarQube

 
   
 

     執行“StartSonar.bat”, 訪問9000埠,sonar預設自帶了jetty伺服器。

     預設使用者名稱密碼 admin、admin。一些設定和菜單隻有在登陸之後才能看到。

     因個人9000埠有其他用途,將埠改為9090.

Java程式碼  收藏程式碼
  1. sonar.web.port=9090  

  4.3漢化sonarQube

   官網地址 http://docs.sonarqube.org/display/PLUG/Plugin+Library

    
 

   將sonar-l10n-zh-plugin-1.13.jar放置於sonarqube-6.2\extensions\plugins下。重啟sonarQube。

 soanrQube有一些需要到的外掛,用於程式碼分析。

外掛介紹

外掛的下載地址為:http://docs.codehaus.org/display/SONAR/Plugin+Library

將下載後的外掛上傳到${SONAR_HOME}extensions\plugins目錄下,重新啟動sonar。

sonar預設集成了Java Ecosystem外掛,該外掛是一組外掛的合集

(1)Java [sonar-java-plugin]:java原始碼解析,計算指標等

(2)Squid [sonar-squid-java-plugin]:檢查違反Sonar定義規則的程式碼

(3)Checkstyle [sonar-checkstyle-plugin]:使用CheckStyle檢查違反統一程式碼編寫風格的程式碼

(4)FindBugs [sonar-findbugs-plugin]:使用FindBugs檢查違反規則的缺陷程式碼

(5)PMD [sonar-pmd-plugin]:使用pmd檢查違反規則的程式碼

(6)Surefire [sonar-surefire-plugin]:使用Surefire執行單元測試

(7)Cobertura [sonar-cobertura-plugin]:使用Cobertura獲取程式碼覆蓋率

(8)JaCoCo [sonar-jacoco-plugin]:使用JaCOCO獲取程式碼覆蓋率

常用的外掛:

(1)JavaScript程式碼檢查:http://docs.codehaus.org/display/SONAR/JavaScript+Plugin

(2)Python程式碼檢查:http://docs.codehaus.org/display/SONAR/Python+Plugin

(3)Web頁面檢查(HTML、JSP、JSF、Ruby、PHP等):http://docs.codehaus.org/display/SONAR/Web+Plugin

(4)xml檔案檢查:http://docs.codehaus.org/display/SONAR/XML+Plugin

(5)scm原始碼庫統計分析:http://docs.codehaus.org/display/SONAR/SCM+Stats+Plugin

(6)檔案度量:http://docs.codehaus.org/display/SONAR/Tab+Metrics+Plugin

(7)中文語言包:http://docs.codehaus.org/display/SONAR/Chinese+Pack

(8)時間表顯示度量結果:http://docs.codehaus.org/display/SONAR/Timeline+Plugin

(9)度量結果演進圖:http://docs.codehaus.org/display/SONAR/Motion+Chart+Plugin

五 sonar-runner安裝

5.1 修改sonar-runnerc下的conf的sonar-scanner.properties配置檔案

Java程式碼  收藏程式碼
  1. sonar.host.url=http://localhost:9090  
  2. sonar.jdbc.username=root  
  3. sonar.jdbc.password=11111  
  4. sonar.jdbc.url=jdbc:mysql://10.10.5.64:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true   
  5. sonar.jdbc.driverClassName=com.mysql.jdbc.Driver  
 

5.2  在專案的根目錄下新增檔案sonar-project.properties

    1 單一個專案

Java程式碼  收藏程式碼
  1. sonar.projectKey=pljj  
  2. sonar.projectName=pljj  
  3. sonar.projectVersion=1.0-SNAPSHOT  
  4. sonar.sources=src/main/java  
  5. sonar.tests=src/test/java  
  6. sonar.binaries=target/classes  
  7. sonar.language=java  

  2 maven多模組

Java程式碼  收藏程式碼
  1. sonar.projectKey=pljj  
  2. sonar.projectName=pljj  
  3. sonar.projectVersion=1.0  
  4. sonar.sources=.  
  5. sonar.language=java  
  6. sonar.sourceEncoding=UTF-8  

   或者

Java程式碼  收藏程式碼
  1. sonar.projectKey=com.pljj-job  
  2. sonar.projectName=elastic-job  
  3. sonar.projectVersion=1.1.0  
  4. # Set modules IDs  
  5. sonar.modules=pljj-core,pljj-console,pljj-spring  
  6. # Modules inherit properties set at parent level  
  7. sonar.sources=src/main/java  
  8. sonar.tests=src/test/java  
  9. sonar.java.binaries=target  
  10. sonar.language=java  
 

 5.3,執行sonar-runner

    在“開始”》“執行”中輸入cmd切換的專案更目錄 輸入“sonar-runner”

    以下為成功目錄
    

  登陸http://localhost:9090/ 檢視程式碼掃描結果,帳號密碼admin/admin


 

六   mave安裝和sonarQbude配合使用

6.1在maven官網下載maven

開啟cmd視窗資料 mvn –v 檢視maven版本,列印如下表示安裝成功。

 

 

 6.2 在%M2_HOME%\conf\setting.xml中輸入下面內容(直接用下面的內容覆蓋原檔案)

Xml程式碼  收藏程式碼
  1. <?xmlversionxmlversion="1.0" encoding="UTF-8"?>  
  2. <settingsxmlnssettingsxmlns="http://maven.apache.org/SETTINGS/1.0.0"  
  3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.           xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0http://maven.apache.org/xsd/settings-1.0.0.xsd">  
  5.     <profiles>  
  6.         <profile>  
  7.             <id>sonar</id>  
  8.             <activation>  
  9.                <activeByDefault>true</activeByDefault>  
  10.             </activation>  
  11.             <properties>  
  12.                 <!-- EXAMPLE FOR MYSQL-->  
  13.                 <sonar.jdbc.url>  
  14.                  jdbc:mysql://localhost:3306/sonar?useUnicode=true&amp;characterEncoding=utf8  
  15.                 </sonar.jdbc.url>  
  16.                 <sonar.jdbc.driverClassName>com.mysql.jdbc.Driver</sonar.jdbc.driverClassName>  
  17.                <sonar.jdbc.username>root</sonar.jdbc.username>  
  18.                <sonar.jdbc.password>11111</sonar.jdbc.password>  
  19.                 <!-- SERVER ON A REMOTE HOST-->  
  20.                 <sonar.host.url>http://localhost:9000</sonar.host.url>  
  21.             </properties>  
  22.         </profile>  
  23.      </profiles>  
  24. </settings>  

    使用asonr-maven-plugin進行分析,在專案的pom.xml裡面新增

    參考官網:

    http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Maven

Xml程式碼  收藏程式碼
  1. <build>  
  2.   <pluginManagement>  
  3.     <plugins>  
  4.       <plugin>  
  5.     <groupId>org.codehaus.mojo</groupId>  
  6.     <artifactId>sonar-maven-plugin</artifactId>  
  7.     <version>2.7.1</version>  
  8.       </plugin>  
  9.     </plugins>  
  10.   </pluginManagement>  
  11. </build>  
 

儲存後找到你需要被sonar分析的maven專案根目錄, 被分析的專案必須帶有pom檔案

6.3、在CMD視窗下,命令列進入到專案檔案的目錄中去,然後再輸入mvn sonar:soanr進行測試

6.4、在瀏覽器中輸入http://localhost:9000檢視結果。

7 ,nexus安裝 

nexus倉庫並不是必須的,不使用私有倉庫情況,不必安裝。

將安裝包複製到需要安裝的機器,我安裝在/opt/soft/nexus
tar –zxvf nexus-latest-bundle.tar.gz
解壓後會出現兩個目錄

cd nexus-2.7.7-01/bin
./nexus 
輸出如下:

列出了nexus的各種命令
./nexus start 啟動服務
然後在本機訪問http://localhost:8081/nexus,預設使用者名稱密碼:admin,admin123


如果是遠端機訪問還需要開通8081埠,操作如下:

Java程式碼  收藏程式碼
  1. /sbin/iptables -I INPUT -p tcp --dport 8081 -j ACCEPT #開啟8081埠   
  2. /etc/rc.d/init.d/iptables save #儲存配置   
  3. /etc/rc.d/init.d/iptables restart #重啟服務   
  4. 檢視埠是否已經開放   
  5. /etc/init.d/iptables status  
 

7.2 專案本地pom.xml配置

Xml程式碼  收藏程式碼
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  3.     <modelVersion>4.0.0</modelVersion>  
  4.     <modules>  
  5.         <module>pljj-common</module>  
  6.         <module>pljj-core</module>  
  7.         <module>pljj-report</module>  
  8.     </modules>  
  9.     <groupId>com.pljj</groupId>  
  10.     <artifactId>pljj-pom</artifactId>  
  11.     <version>0.0.1-SNAPSHOT</version>  
  12.     <packaging>pom</packaging>  
  13.     <name>pljj-pom</name>  
  14.     <url>http://maven.apache.org</url>  
  15.     <properties>  
  16.         <project.build.sourceEncoding>UTF-8

    相關推薦

    持續整合Jenkins+sonarqube部署教程

        新增如下內容,sonar預設自帶mysql驅動。 Js程式碼   sonar.jdbc.username=root   sonar.jdbc.password=11111   sonar.jdbc.url=jdbc:mysql://localhost:3306/sona

    持續整合jenkins+weblogic部署啟動(二)

    專案已經可以順利的釋出到linux上指定的目錄了,接下來是我對weblogic部署的思路 有的人認為只要專案放到指定位置,weblogic立即關閉再啟動,他就會載入專案,這個時候載入的就是最新的,專案就是最新的, 這個想法是錯的。這樣專

    微服務下的持續整合-Jenkins自動化部署GitHub專案

    @[TOC] ## 一、前言 只從公司用了Jenkins後就很想寫這個了,因為這個真真真的是太方便了,想起小農剛工作的時候,那個時候部署專案怎麼部署呢?首先需要將對應的class檔案和xml一個一個匯出來,放到對應的包檔案裡面,有時候一不小心很有可能會導錯,這個時候又要去重新拉一下對應的class檔案,然後

    持續整合Jenkins-Linux離線部署.md

    考慮公司伺服器未開通網路訪問許可權,因此所有的東西要通過本地下載後上傳linux,所以初始先在本地安裝好整體環境,再進行移殖。 移殖中最主要是移殖本地的.jenkins目錄,移殖後基本沒有什麼問題,只是後續專案中有新引入的maven包,需要手動上傳至伺服器maven倉庫。

    Asp.net Core 使用Jenkins + Dockor 實現持續整合、自動化部署(二):部署

    前面又是廢話 我之前寫過: Asp.Net Core 程式部署到Linux(centos)生產環境(一):普通部署 Asp.Net Core 程式部署到Linux(centos)生產環境(二):docker部署 大家可能會有疑問,分散式環境當中的部署還是跟我們在windows一樣,一臺機一臺機的去

    Asp.net Core 使用Jenkins + Dockor 實現持續整合、自動化部署(一):Jenkins安裝

    寫在前面 其實園子裡很多大佬都寫過,我也是一個搬運工很多東西不是原創的,不過還是想把自己安裝的過程,記錄下來如果能幫到大家的忙,也是一件功德無量的事; 執行環境 centos:7.2 cpu:1核 2G記憶體 1M頻寬 其實用的騰訊雲 安裝jenkins 這裡的jenkins就不從docker

    Jenkins-Docker-SpringBoot-java-git-gradle-持續整合與自動部署-實現跨伺服器部署

    1.首先你需要在git倉庫中有一份可作為服務啟動的springboot程式碼。 可選擇方案(github-國外,Gitee國內,自己搭建私有倉庫): 1.1 如果你只是為了測試或者你的專案是開源的,可以選擇github(國外),因為github私有專案需要收費,你懂的。gi

    Jenkins學習總結(3)——Jenkins+Maven+Git搭建持續整合和自動化部署

    前言     持續整合這個概念已經成為軟體開發的主流,可以更頻繁的進行測試,儘早發現問題並提示。自動化部署就更不用說了,可以加快部署速度,並可以有效減少人為操作的失誤。之前一直沒有把這個做起來,最近的新專案正好有機會,費了一番功夫總算搞好了,特此記錄。 1. 開發環

    Framework專案持續整合(jenkins)及集合SonarQube

    [toc] -------------------- # Framework專案持續整合及集合SonarQube - 前言 個人部落格原文地址:[http://book.levy.net.cn/doc/devops/jenkins_sonar.html](http://book.levy.net.cn/

    .NET Core部署到linux(CentOS)最全解決方案,入魔篇(使用Docker+Jenkins實現持續整合、自動化部署)

    通過前面三篇: [.NET Core部署到linux(CentOS)最全解決方案,常規篇](http://blog.rdiframework.net/article/244) [.NET Core部署到linux(CentOS)最全解決方案,進階篇(Supervisor+Nginx)](http://bl

    .net core 2.x - docker-linux容器-持續整合(jenkins)

      1.準備工作      先說明哈,以下操作都是在windows中:      a).需要下載安裝 jenkins 的windows版本      b).需要下載安裝 docker for windows,安裝之後使用的 linux容器,如果不知道的,可以看上一篇      c).我們這裡的演示使

    Jenkins自動化部署教程

    本教程講解springboot框架打包成jar包進行自動化部署; 外掛安裝 工具配置 系統管理  》 全域性工具配置(可以使用預設配置) 配置jdk 配置maven 配置git Publish over SSH配置 系統管理  》 系統設定,找到Publis

    CI持續整合系統環境---部署gerrit環境完整記錄

    開發同事提議在線上部署一套gerrit程式碼稽核環境,廢話不多說,部署gerrit的操作記錄如下: 提前安裝好java環境,mysql環境,nginx環境 測試系統:centos6.5 下載下面三個包,放到/root目錄下(下載地址:http://pan.baidu.com/

    自動持續整合——Jenkins整合SpringBoot

      自動持續整合,簡而言之就是在程式碼每次提交時,自動持續整合的工作主要是能對專案進行構建、自動化測試和釋出等等。jenkins是一個自動持續整合工具,目前比起前沿的還有gitlab。使用自動持續整合

    iOS持續整合jenkins+xcode+svn+七牛

    吐個槽:隨著程式碼的不斷累積每次iOS打包都要焦急等待小十分鐘,Xcode卡爆了有沒有,Archives有時證書都無法驗證,上傳20M的.ipa檔案一定要看網路給不給力。 jenkins實現目標: 生成ipa檔案 生成plist檔案 ipa、plist七牛

    手摸手聊聊小程式持續整合Jenkins

    本文首發在我的github部落格 github.com/Pasoul/blog… ,感興趣的同學可以點個star,不要迷路哦~ 我們為什麼要持續整合? 試想以下兩個場景: 場景一:你在開發新功能的時候,同事A找你要小程式體驗二維碼,於是你只能: git stash // 快取本地修改 git

    持續整合(jenkins)中的持續釋出配置.(Deploy to container Plugin外掛)

    引數詳解: 第一項(WAR/EAR files):是war包的相對路徑(相對於工作區路徑,即在工作區中war包的相對路徑.)如我的maven執行完成之後會在工作區的target目錄下生成專案.war,所以這裡我的路徑就寫target\專案.war. 第二項:(conten

    如何做好持續整合——Jenkins on Mesos 實踐

    首先講一下持續整合的優勢。過去公司做測試可能需要十幾、二十幾個元件,整合一次往往要一兩個小時,費力費時,而且複雜容易出錯,而一旦配置出錯的話耗時會更久。因此,一次整合測試一週才會做一次,測出Bug要到下一週才能更新,再做測試,這個週期會非常漫長。而持續整合的意義

    持續整合Jenkins

    轉自:https://blog.csdn.net/qq_26848099/article/details/78901240一、相關概念1.1 Jenkins概念:Jenkins是一個功能強大的應用程式,允許持續整合和持續交付專案,無論用的是什麼平臺。這是一個免費的原始碼,可以

    利用Travis CI+GitHub實現持續整合和自動部署

    前言 如果你手動部署過專案,一定會深感持續整合的必要性,因為手動部署實在又繁瑣又耗時,雖然部署流程基本固定,依然容易出錯。 如果你很熟悉持續整合,一定會同意這樣的觀點:“使用它已經成為一種標配”。 什麼是持續整合 Continuous Integration(CI) is a development p