2015-09-04 39 views
0

我想評估SonarQube作爲源代碼檢查工具。如何讓SonarQube運行來分析PHP項目?

該項目託管在一個git存儲庫中,我希望SonarQube在每次提交時檢查我的PHP項目。

+0

你有沒有看看http://docs.sonarqube.org/display/SONAR/Analyzing+Source+Code,更特別:h​​ttp://docs.sonarqube.org/display/SONAR/Installing+an+分析儀? – benzonico

回答

8

我得到了SonarQube via docker的基本實例。 (聲納立方體的當前版本是6.7 - 但我不知道是否該步驟保持不變這個答案考慮到5.1。)

運行容器:

sudo docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube:5.1 

這提供了一個標準在

http://localhost:9000/ 

安裝SonarQube accessable的我可以通過用戶名登錄並passoword admin,並且經由安裝部件PHP:

SETT英格斯>系統>更新中心

(或:http://localhost:9000/updatecenter

,搜索PHP和安裝。

在那裏我可以添加PHP並重新啓動SonarQube服務器後,(我通過docker stop container_idcontainer start container_id)加載了擴展。

服務器不會運行您的測試。它只會顯示結果。

您將需要一臺專門用於作爲您的sonar-runner的機器,爲了快速入門,您可以使用本地開發機器和本地的bitbucket結賬。在該機器上安裝聲納流道。

通過下載聲納亞軍:

$ wget http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/2.4/sonar-runner-dist-2.4.zip 

,並提取到:

~/programs/sonar-runner-2.4 

在此目錄中,有你找到一個文件conf/sonar-runner.properties應包含:

#Configure here general information about the environment, such as SonarQube DB details for example 
#No information about specific project should appear here 

#----- Default SonarQube server 
sonar.host.url=http://localhost:9000 

#----- PostgreSQL 
#sonar.jdbc.url=jdbc:postgresql://localhost/sonar 

#----- MySQL 
#sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8 

#----- Oracle 
#sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE 

#----- Microsoft SQLServer 
#sonar.jdbc.url=jdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor 

#----- Global database settings 
sonar.jdbc.username=sonar 
sonar.jdbc.password=sonar 

#----- Default source code encoding 
sonar.sourceEncoding=UTF-8 

#----- Security (when 'sonar.forceAuthentication' is set to 'true') 
sonar.login=admin 
sonar.password=admin 

進入你的項目的根目錄並創建一個名爲sonar-project.properties的文件:

# must be unique in a given SonarQube instance 
sonar.projectKey=yourProjectKey 
# this is the name displayed in the SonarQube UI 
sonar.projectName=yourProject 
sonar.projectVersion=1.0 

# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows. 
# Since SonarQube 4.2, this property is optional if sonar.modules is set. 
# If not set, SonarQube starts looking for source code from the directory containing 
# the sonar-project.properties file. 
sonar.sources=./classes/,./tests/ 

# Encoding of the source code. Default is default system encoding 
sonar.sourceEncoding=UTF-8 

# Encoding of the source code. Default is default system encoding 
sonar.sourceEncoding=UTF-8 

我然後跑:

your/projects/dir$: ~/programs/sonar-runner-2.4/bin/sonar-runner 

你再看看你的SonarCube儀表板的新條目。

+0

只是注意,創建到項目文件白衣它的性能應該命名sonar-project.properties或不工作(我不知道是否有另一種方式)。 – NewRehtse

0

得到如下:8

  • 的MySQL 7u55 +:

    執行如下:

    設置SonarRunner:

    #Configure here general information about the environment, such as  SonarQube DB details for example 
    #No information about specific project should appear here 
    
    #----- Default SonarQube server 
    sonar.host.url=http://14.3.1.4:9000 
    
    #----- PostgreSQL 
    #sonar.jdbc.url=jdbc:postgresql://localhost/sonar 
    
    #----- MySQL 
    sonar.jdbc.url=jdbc:mysql://14.3.1.2:3306/sonarqube? useUnicode=true&characterEncoding=utf8 
    
    #----- Oracle 
    #sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE 
    
    #----- Microsoft SQLServer 
    #sonar.jdbc.url=jdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor 
    
    #----- Global database settings 
    sonar.jdbc.username=sonarqube 
    sonar.jdbc.password=sonarqube 
    
    #----- Default source code encoding 
    sonar.sourceEncoding=UTF-8 
    
    #----- Security (when 'sonar.forceAuthentication' is set to 'true') 
    #sonar.login=admin 
    #sonar.password=admin 
    

    克隆在聲納是在服務器上的無功/網絡文件夾中的混帳回購協議。 然後在要檢查的項目中添加一個配置文件,名爲sonar-project.properties。這裏是一個Symfony的例子:

    # Required metadata 
    sonar.projectKey=yoursite.dev.nl.project 
    sonar.projectName=Project 
    sonar.projectVersion=1.0 
    
    # Comma-separated paths to directories with sources (required) 
    sonar.projectBaseDir=/var/www/your_project 
    # Folder being analysed. 
    sonar.sources=symfony/src 
    
    # Language (Only when it is a single language) 
    sonar.language=php 
    # Encoding of the source files 
    sonar.sourceEncoding=UTF-8