方法1:直接在服务器分析1
- 在项目源代码目录新建sonar-project.properties文件
touch sonar-project.properties
-
编辑此文件
vim sonar-project.properties
,内容如下:# Required metadata sonar.projectKey=my:project #项目的key sonar.projectName=My project #项目显示的名称 sonar.projectVersion=1.0 #版本 # Path to the parent source code directory. # 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=src #项目源代码目录 # Encoding of the source code sonar.sourceEncoding=UTF-8 #使用的编码格式 # Additional parameters sonar.my.property=value
- 执行债务分析
- 在上面文件所在路径执行
sonar-runner
- 在上面文件所在路径执行
方法2:结合maven使用
-
配置maven的setting.xml文件,位置:
%MAVEN_HOME%/conf/settings.xml
<profile> <id>sonar</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <!-- 数据库url --> <sonar.jdbc.url>jdbc:mysql://172.16.128.160:3306/sonar</sonar.jdbc.url> <!-- 数据库driver --> <sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver> <!-- 数据库username --> <sonar.jdbc.username>sonar</sonar.jdbc.username> <!-- 数据库password --> <sonar.jdbc.password>sonar</sonar.jdbc.password> <!-- sonar地址 --> <sonar.host.url>http://172.16.128.160:19000</sonar.host.url> </properties> </profile>
- 执行maven命令
- mvn sonar:sonar
问题解决:
-
执行债务分析时,若报错,并且sonar后台日志(%SONARQUBE_HOME%/logs/sonar.log)中有如下错误
undefined method 'generate' for #<JSON::Ext::Generator::State:0x76afc32d>
问题原因:Sonar后台有Ruby on Rails工程,会用到Ruby的API,这个是Ruby的异常。由于部署的服务器刚好也装过Ruby版本,导致了调用自己安装的Ruby,而不是Sonar内嵌的Ruby,导致出现错误
解决方案:在sonar的启动脚本soanr.sh的开头加入unset GEM_PATH ,在重新启动即可,通过这个命令可以保证每次启动的时候使用sonar内置的ruby版本
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。