安装好sonar后,跑sonar有三种方式 

1. 通过maven插件跑,这个很简单,只需要简单的修改maven的settings文件就好了,在<profiles>下面增加

		<profile>
			<id>sonar</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<properties>
				<sonar.jdbc.url>jdbc:oracle:thin:@IP:1521:cpadb</sonar.jdbc.url>
				<sonar.jdbc.driver>oracle.jdbc.OracleDriver</sonar.jdbc.driver>
				<sonar.jdbc.username>sonar</sonar.jdbc.username>
				<sonar.jdbc.password>sonar</sonar.jdbc.password>
				<sonar.host.url>http://IP:48080/sonar/</sonar.host.url>
                                <!--
                                <sonar.jdbc.url>jdbc:h2:tcp:@IP:9092/sonar</sonar.jdbc.url>
				<sonar.jdbc.driver>org.h2.Driver</sonar.jdbc.driver>
				<sonar.jdbc.username>sonar</sonar.jdbc.username>
				<sonar.jdbc.password>sonar</sonar.jdbc.password>
				<sonar.host.url>http://IP:48080/sonar/</sonar.host.url>
                                <sonar.branch>***</sonar.branch>
                                -->
			</properties>
		</profile>
 

然后运行sonar:sonar命令就可以了,Maven 插件会自动把所需数据(如单元测试结果、静态检测结果等)上传到 Sonar 服务器上

如果你的项目有多个分支,可为每个分支增加<sonar.branch>****</sonar.branch>

另外一些详细的配置可参考

http://docs.codehaus.org/display/SONAR/Analyzing+with+Maven    

http://docs.codehaus.org/display/SONAR/Analysis+Parameters


如果你的不是maven项目也不要紧,直接在项目根目下增加一个pom.xml

配置一下

<groupId>****</groupId>

......

<version>1.0.0</version>

<build>

<sourceDirectory>项目的源代码路径</sourceDirectory>

</build>



2. 通过eclipse的sonar插件

   详细安装方法请参考这里 http://docs.codehaus.org/display/SONAR/Installing+SonarQube+in+Eclipse

   插件地址是http://dist.sonar-ide.codehaus.org/eclipse/

   详细的配置请参考 http://docs.codehaus.org/display/SONAR/Configuring+SonarQube+in+Eclipse

   但是通过插件不能创建project,只能连接到之前在sonar上创建好的项目,所以需通过第一种方式创建出project,或是通过下面的第三种方式创建,有了project后就可以用这个插件连接到project来分析,插件的好处是在eclipse里面就可以直接看到分析结果,方面修改代码。

  还有这个插件可以在本地跑sonar,结果只是在本地显示,不会影响sonar服务器上的结果,用第1和第3种方法跑的话,会更新服务器上的结果,如果10几个人在开发,每个人都跑的话,不是太好。建议在服务器上每天只跑一到两次,或者是与CI集成来自动跑。而个人开发的时候通过这个插件在本地跑比较好。


   另外也可以使用另一个插件:http://docs.codehaus.org/display/SONAR/Java+Ecosystem


3. 通过sonar runner 客户端来运行project

    下载地址是http://docs.codehaus.org/display/SONAR/Installing+and+Configuring+Sonar+Runner 同时,这篇文章里面还有详细的安装说明,不过是英文的,我简单翻译一下。

     1)下载后解压到$SONAR_RUNNER_HOME 目录。

    2)修改 $SONAR_RUNNER_HOME/conf/sonar-runner.properties 里面的配置

#----- Default Sonar server
#sonar.host.url=http://localhost:9000
 
#----- PostgreSQL
#sonar.jdbc.url=jdbc:postgresql://localhost/sonar
#sonar.jdbc.driver=org.postgresql.Driver
 
#----- MySQL
#sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
#sonar.jdbc.driver=com.mysql.jdbc.Driver
 
#----- Oracle
#sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE
#sonar.jdbc.driver=oracle.jdbc.driver.OracleDriver
 
#----- Global database settings
#sonar.jdbc.username=sonar
#sonar.jdbc.password=sonar
    3)创建环境变量 SONAR_RUNNER_HOME, 指向安装目录

    4)增加$SONAR_RUNNER_HOME/bin到path.

    5)  运行可参考 http://docs.codehaus.org/display/SONAR/Analyzing+with+Sonar+Runner, 我简单翻译一下

         a) 在项目目录下创建sonar-project.properties

# required metadata
sonar.projectKey=my:project
sonar.projectName=My project
sonar.projectVersion=1.0
 
# optional description
sonar.projectDescription=Fake description
 
# path to source directories (required)
sonar.sources=srcDir1,srcDir2,./scr/main/java
 
# path to test source directories (optional)
#sonar.tests=testDir1,testDir2
 
# path to project binaries (optional), for example directory of Java bytecode
#sonar.binaries=binDir
 
# optional comma-separated list of paths to libraries. Only path to JAR file is supported.
#sonar.libraries=path/to/library/*.jar,path/to/specific/library/myLibrary.jar,parent/*/*.jar
 
# The value of the property must be the key of the language.
#sonar.language=cobol
 
# Additional parameters
sonar.my.property=value

然后在项目根目录下运行sonar-runner

http://docs.codehaus.org/display/SONAR/Analyzing+with+SonarQube+Runner 这里有详细的使用说明,包括多个子项目如何配置,多语言项目如何配置。

不过如果不是遗留项目的话,建议用maven来构建。

sonar-runner与sonar3.5只能运行项目分析,到sonar3.6以后就可以附加其它任务

# To run the computation of views (Views plugin is required)
sonar-runner views
 
# To run the computation of reports (Report plugin is required)
sonar-runner report
 
# To run the computation of developer data (Developer Cockpit plugin is required)
sonar-runner devcockpit
用maven运行的话,在sonar3.5上也能执行report插件,看运行的日志可以看到最后会运行post-job,有一个是pdf-report.

但是用sonar-runner的话,就不会运行这个job。这导致在sonar界面上pdf report不正常


4. 通过持续集成工具比如Jenkins来跑sonar, 详细参考

GitHub 加速计划 / ma / maven
25
0
下载
Maven: Apache Maven是一个开源的项目管理和构建工具,主要用于Java项目。适合需要自动化项目构建和依赖管理的开发者。特点包括约定优于配置、易于使用和社区驱动。
最近提交(Master分支:3 个月前 )
575ad371 As it uses now String.format that produces different decimal separator based on local, most notable DE --- https://issues.apache.org/jira/browse/MNG-8454 1 天前
5f19dae0 Bumps [org.assertj:assertj-core](https://github.com/assertj/assertj) from 3.26.3 to 3.27.0. - [Release notes](https://github.com/assertj/assertj/releases) - [Commits](https://github.com/assertj/assertj/compare/assertj-build-3.26.3...assertj-build-3.27.0) --- updated-dependencies: - dependency-name: org.assertj:assertj-core dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- https://issues.apache.org/jira/browse/MNG-8458 1 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐