如何使用Sonar Runner进行java代码扫描工具

亦余心之所善兮,虽九死其犹未悔.
安装sonar:
下载地址:https://www.sonarqube.org/downloads/
wget /Distribution/sonarqube/sonarqube-5.6.zip
unzip sonarqube-5.6.zip
mv sonarqube-5.6 /usr/local/
ln -s /usr/local/sonarqube-5.6/ /usr/local/sonarqube
准备数据库:
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar@pw';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar@pw';
FLUSH PRIVILEGES;
启动sonar,如果报错可以看看web.log等日志
/usr/local/sonarqube/bin/linux-x86-64/sonar.sh start
安装sonar插件-中文包
藏的还是比较深的,费劲才找到.参考这里找到的
安装时候报错,反复点了好几次才成功.不知道是我加了访问google的hosts还是反复点几次才奏效的.
SonarQube的安装、配置与使用
win下的,可以参考下.
安装sonarscanner,实现手动扫描,web出结果
含有runner各版本安装
先把sonar-runner安装好: sonar-scanner-2.5.zip
vim /etc/profile
export PATH=$PATH:/usr/local/sonar-scanner/bin
配置runner程序 conf/sonar-scanner.properties 让去连数据库
runner(scanner) db sonar-web 三者具体关系图如下
这里还有scanner2.8版本的安装
sonar-scanner2.8http://newthink./3334安装包下载太慢遂放弃.
安装后sonar-scanner使用方法:
下载官方的示例代码
下载/SonarSource/sonar-scanning-examples
解压到/usr/local/src/
cd /usr/local/src/sonar-scanning-examples-master/sonarqube-scanner
/usr/local/src/sonar-scanning-examples-master/sonarqube-scanner
/usr/local/sonar-scanner/bin/sonar-runner #到项目下执行runner程序.
注:现在的例子貌似边了,要在上面那个目录执行,不能进入各语言模块执行了
目录结构如下
[root@node1 sonar-scanning-examples-master]# tree sonarqube-scanner
sonarqube-scanner
├── copybooks
│&&├── Attr.cpy
│&&├── Custmas.cpy
│&&├── Errparm.cpy
│&&└── MNTSET2.CPY
├── coverage-report
│&&└── coverage-cobertua-flex.xml
├── sonar-project.properties
└── src
├── abap
│&&├── ZBCMKZ17.abap
│&&└── ZZBGS106.abap
├── cobol
│&&└── Custmnt2.cbl
├── css
│&&├── sample.css
│&&└── sonar.css
├── directory
如果一个项目要被sonar扫描评测,以上四个黄色部门都必须有.
sonar-project.properties 用来配置项目名称语言类型等.最终会显示在sonar-web上,其他三个目录可以为空.但是不能没有.
执行结果如下图
阅读(...) 评论()博客分类:
Put your technical debt under control
Productivity is falling?
Confess your source code to clean it up!
第一步:安装SONAR
1 准备好JAVA环境。
2 新建ORACLE表空间和用户.
2 下载最新的sonar,解压到目录C:\app\sonar-3.6
3 修改C:\app\sonar-3.6\conf\sonar.properties:
sonar.jdbc.username:sonar
sonar.jdbc.password:sonar
sonar.jdbc.url:jdbc:oracle:thin:@localhost:1521/orcl
sonar.jdbc.driverClassName:oracle.jdbc.driver.OracleDriver
4 执行C:\app\sonar-3.6\bin\windows-x86-64\StartSonar.bat(操作系统为windows server 2008),启动自带的JETTY服务器。打开http://localhost:9000,如果显示sonar主页,则sonar安装成功.
5 安装中文插件和其它语言插件:将插件JAR包放到目录C:\app\sonar-3.6\extensions\plugins,重启服务即安装成功。
中文插件:sonar-l10n-zh-plugin-1.5
JS语言:sonar-javascript-plugin-1.3
web(HTML)语言:sonar-web-plugin-1.2
6 添加数据库驱动到C:\app\sonar-3.6\extensions\jdbc-driver\oracle\ojdbc-14.jar
第二步:安装SONAR-RUNNER
1 下载sonar-runner,解压到目录C:\app\sonar-runner-2.2.2
2 修改C:\app\sonar-runner-2.2.2\sonar-runner.properties:
sonar.jdbc.url=jdbc:oracle:thin:@localhost:1521/orcl
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.sourceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
3 添加系统环境变量:SONAR_RUNNER_HOME 值为 C:\app\sonar-runner-2.2.2
4 修改环境变量Path,在变量值末尾添加:“;%SONAR_RUNNER_HOME%\bin”
5 命令行里执行 sonar-runner -h 如果显示如下内容,则安装成功。
C:\app\sonar-runner-2.2.2
INFO: usage: sonar-runner [options]
INFO: Options:
-D,--define &arg&
Define property
-e,--errors
Produce execution error messages
Display help information
-v,--version
Display version information
-X,--debug
Produce execution debug output
第三步:分析代码
1 拷贝代码到C:\workspase\xjglxt
代码目录结构如图:
2 添加C:\workspase\xjglxt\sonar-project.properties 内容如下 :
#required metadata
#projectKey项目的唯一标识,不能重复
sonar.projectKey=xjglxt
sonar.projectName=xjglxt
sonar.projectVersion=1.0
sonar.sourceEncoding=UTF-8
sonar.modules=java-module,javascript-module,html-module
# Java module
java-module.sonar.projectName=Java Module
java-module.sonar.language=java
# .表示projectBaseDir指定的目录
java-module.sonar.sources=.
java-module.sonar.projectBaseDir=src
sonar.binaries=classes
# JavaScript module
javascript-module.sonar.projectName=JavaScript Module
javascript-module.sonar.language=js
javascript-module.sonar.sources=js
javascript-module.sonar.projectBaseDir=webRoot
# Html module
html-module.sonar.projectName=Html Module
html-module.sonar.language=web
html-module.sonar.sources=pages
html-module.sonar.projectBaseDir=webRoot
3 命令行里执行 cd ../../workspase/xjglxt 到项目根目录。
然后执行命令:sonar-runner,控制台会打印分析过程。当出现SUCCESS时,则分析成功。
INFO: --------------------
INFO: EXECUTION SUCCESS
INFO: --------------------
Total time: 2:37.891s
Final Memory: 14M/449M
INFO: --------------------
官网:http://www.sonarqube.org/
示例:http://nemo.sonarsource.org/
文档&插件:http://docs.codehaus.org/display/SONAR/Continuous+Integration
遇到的问题及解决方法:
1 问题:项目列表里只有最近一次分析的项目。
& 原因:sonar.projectKey设置了同一个值。
2 项目名设置中文时显示乱码(sonar.projectName=中文)
& 原因:未找到
描述: Sonar实战.pdf
下载次数: 1160
浏览 21286
浏览: 99421 次
来自: 成都
还是不够全面 @pony:特别声明,@ponyli@ponym ...
feisuzhu 写道这个……简单的检查一下括号的数量不行么? ...
yuhui0531 写道有一个问题,如果多了个右括号怎么办?
这个……简单的检查一下括号的数量不行么??假设输入是有效的话。 ...
有一个问题,如果多了个右括号怎么办?
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'如何使用Sonar Runner进行代码扫描_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
如何使用Sonar Runner进行代码扫描
我有更好的答案
%SONAR_RUNNER_HOME%&#92..”,在编辑系统变量对话框中添加SONAR_RUNNER_HOME变量。3) 在“系统变量(S)”下找到“Path”,点击“编辑(I)、“:\sonar\sonar-runner-2,为了方便,将安装包解压到D,在编辑系统变量对话框中“变量值(V):”输入框内容未尾添加.”..。2) 在“系统变量(S)”下点击“新建(W).。4) 依次点击“环境变量”和“系统属性”对话框的确定以保存刚添加的环境变量,进入环境变量对话框;原料Sonar Runner 2.3方法/步骤1安装Sonar Runner解压附件中的sonar-runner-2.3.rar到任意目录工具/”,点确定.3下。2配置环境变量1) 打开“系统属性”对话框,点击“环境变量”
采纳率:87%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包代码审查工具SonarQube
1. 安装、配置和启动SonarQube
1.1. 启动MySQL服务器并创建sonarqube
SonarQube服务依赖于数据库MySQL5.6及其以上的版本,用于代码分析结果的数据存储
# service d start
# service mysqld status
创建数据库:sonarqube
# mysql -uroot -p
mysql& CREATE DATABASE `sonarqube` /*!40100 DEFAULT CHARACTER SET utf8 */;
1.2. 安装、配置和启动SonarQube服务器
# cd /usr/local
# unzip sonarqube-5.6.6.zip
# mv sonarqube-5.6.6 sonarqube
# vi sonarqube/conf/sonar.properties
sonar.jdbc.url=jdbc:mysql://192.168.2.132:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=*********
sonar.jdbc.password=*********
# /usr/local/sonarqube/bin/linux-x86-64/sonar.sh start
# /usr/local/sonarqube/bin/linux-x86-64/sonar.sh status
2.访问SonarQube服务并配置代码规则
2.1.访问SonarQube服务
,访问之前须在防火墙中开启9000端口 默认管理员账户和密码:admin/admin
2.2.配置代码规则
进入更新中心(配置&&更新中心),安装插件
Chinese Pack:汉化包,虽然汉化的非常不彻底,廖剩无几吧 Checkstyle :Analyze
code with Checkstyle. PMD :Analyze Java code with PMD. SonarJava :Code Analyzer for Java Sonar :Code Analyzer for Python
3. 使用SonarQube分析maven项目源码
3.1. 修改maven的配置文件setting.xml,配置SonarQube插件
# vi setting.xml
org.sonarsource.scanner.maven
jdbc:mysql://192.168.2.132:3306/sonarqube?useUnicode=true&characterEncoding=utf8
http://192.168.2.132:9000
3.2. 基于命令行进行代码审查
切换到项目根路径(pom.xml文件所在的路径),使用下面的命令进行代码审查
# mvn clean install sonar:sonar
3.3. 基于IDE:eclipse进行代码审查
#----- 切换到执行自定义maven命令的界面
project&right key&Run As&maven build...
#----- 执行代码审查命令
Goals:clean install sonar:sonar
4. 使用SonarQube插件sonar-runner分析非maven项目源码
4.1. 配置sonar-runner
配置sonar-runner服务到系统变量
增加变量SONAR_RUNNER_HOME;
追加%SONAR_RUNNER_HOME%\bin到path尾部
配置sonar-runner服务
# vi config sonar-runner.properties
#----- SonarQube server
sonar.host.url=http://192.168.2.132:9000
#----- MySQL
sonar.jdbc.url=jdbc:mysql://192.168.2.132:3306/sonar?useUnicode=true&characterEncoding=utf8
#----- Global database settings
sonar.jdbc.username=root
sonar.jdbc.password=qiqi7179
#----- Security (when 'sonar.forceAuthentication' is set to 'true')
sonar.login=admin
sonar.password=admin
4.2. 使用sonar-runner分析java代码
项目根路径创建配置文件sonar.properties
#----- projectKey和projectValue用作唯一标识项目
sonar.projectKey=
sonar.projectName=
sonar.projectVersion=
#----- 源码路径,如果在多个路径,用英文逗号&,&隔开
sonar.sources=src
#----- 编译后的class文件路径
sonar.java.binaries=WebContent/WEB-INF/classes
sonar.language=java
sonar.sourceEncoding=UTF-8
#----- 此项设置不需要动
sonar.my.property=value
*切换项目根路径执行代码审查命令
# sonar-runner
4.3. 使用sonar-runner分析python代码
项目根路径创建配置文件sonar.properties
sonar.projectKey=Py
sonar.projectName=Py
sonar.projectVersion=1.0
sonar.sources=./
#----- 此项设置不要动
sonar.language=py
sonar.sourceEncoding=UTF-8
sonar.my.property=value
*切换项目根路径执行代码审查命令
# sonar-runner
5. 使用Eclipse插件SonarLint进行代码审查
Eclipse MarketPlace搜索SonarLint安装后重启即可自动分析代码(java、python均可)
该插件的好处主要是在编写代码的过程中就会有提示可能的坏味道、和bug,不用到代码审查阶段就可以大大提高代码的质量
该插件也可以结合SonarQube使用,将分析的结果发送给SonarQube

我要回帖

更多关于 静态代码扫描 的文章

 

随机推荐