3

我已经安装了CodeNarc 插件并生成了 xml 报告的 grails 项目。使用以下配置和版本安装和配置 SonarQube:

Grails 2.3.7
SonarQube server- 4.5
SonarQube Runner- 2.4
CodeNarc Plugin- 0.22

Sonar-project.properties 文件包含

#sonar-runner.properties    
sonar.projectKey=key    
sonar.projectName=Project Name    
sonar.projectVersion=1.0    
sonar.sources=src, grails-app/services, grails-app/controllers, grails-app/domain    
sonar.tests=test/    
sonar.language=grvy    
sonar.sourceEncoding=UTF-8    
sonar.groovy.codenarc.reportPath=target/codenarc/codeNarcXMLReport.xml    

生成 CodeNarc XML 报告并在文件中添加其报告路径。声纳亚军分析项目,但零问题

Sonar runner 无法索引资源并针对 CodeNarc 规则违规发出警告。

SonarQube Runner 2.4
Java 1.7.0_21 Oracle Corporation (64-bit)
Linux 3.11.0-26-generic amd64
INFO: Runner configuration file: /media/Others/softwares/sonar-runner-2.4/conf/sonar-runner.properties
INFO: Project configuration file: /media/Others/repo/project/sonar-project.properties
INFO: Default locale: "en_IN", source code encoding: "UTF-8"
INFO: Work directory: /media/Others/repo/project/./.sonar
INFO: SonarQube Server 4.5
11:20:57.146 INFO  - Load global referentials...
11:20:57.356 INFO  - Load global referentials done: 213 ms
11:20:57.367 INFO  - User cache: /home/.sonar/cache
11:20:57.378 INFO  - Install plugins
11:20:57.680 INFO  - Install JDBC driver
11:20:57.688 INFO  - Create JDBC datasource for jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
11:20:59.590 INFO  - Initializing Hibernate
11:21:01.310 INFO  - Load project referentials...
11:21:02.342 INFO  - Load project referentials done: 1032 ms
11:21:02.342 INFO  - Load project settings
11:21:03.193 INFO  - Loading technical debt model...
11:21:03.218 INFO  - Loading technical debt model done: 25 ms
11:21:03.222 INFO  - Apply project exclusions
11:21:03.598 INFO  - -------------  Scan project
11:21:03.603 INFO  - Load module settings
11:21:04.228 INFO  - Language is forced to grvy
11:21:04.230 INFO  - Loading rules...
11:21:05.224 INFO  - Loading rules done: 994 ms
11:21:05.260 INFO  - Configure Maven plugins
11:21:05.537 INFO  - Compare to previous analysis (2014-12-23)
11:21:05.557 INFO  - Compare over 30 days (2014-11-23, analysis of 2014-11-10 17:20:47.0)
11:21:05.578 INFO  - Compare to previous version (2014-10-30)
11:21:05.636 INFO  - Loaded quality gate 'SonarQube way'
11:21:05.817 INFO  - Base dir: /media/Others/repo/project/.
11:21:05.817 INFO  - Working dir: /media/Others/repo/project/./.sonar
11:21:05.818 INFO  - Source paths: src, grails-app/services, grails-app/controllers,     grails-app/domain
11:21:05.818 INFO  - Test paths: test
11:21:05.818 INFO  - Source encoding: UTF-8, default locale: en_IN
11:21:05.818 INFO  - Index files
11:21:06.276 INFO  - 226 files indexed
11:21:44.020 INFO  - Quality profile for grvy: Sonar way
11:21:44.404 INFO  - Sensor QProfileSensor...
11:21:44.416 INFO  - Sensor QProfileSensor done: 13 ms
11:21:44.416 INFO  - Sensor CodeNarc...
11:21:44.593 WARN  - No such rule in Sonar, so violation from CodeNarc will be ignored: 
11:21:44.594 WARN  - No such rule in Sonar, so violation from CodeNarc will be ignored: 
11:21:44.595 WARN  - No such rule in Sonar, so violation from CodeNarc will be ignored: 
11:21:44.596 WARN  - No such rule in Sonar, so violation from CodeNarc will be ignored: 
11:21:44.599 WARN  - Resource is not indexed. Ignoring violation org.sonar.api.rules.Violation@221
[resource=org.sonar.api.resources.File@4254e18d[key=<null>,deprecatedKey=grails-app/controllers/LoginController.groovy,path=<null>,
dir=grails-app/controllers,filename=LoginController.groovy,language=<null>],rule=Rule[id=427,name=Catch
Exception,key=org.codenarc.rule.exceptions.CatchExceptionRule,configKey=CatchException,plugin=grvy,severity=MINOR,isTemplate=false,status=READY,language=grvy,template=<null>],
message=The type Exception should not be caught,severity=<null>,lineId=93,cost=<null>,createdAt=<null>,switchedOff=false,
checksum=<null>,isNew=false,isManual=false,permanentId=<null>,personId=<null>]
11:21:44.602 WARN  - Resource is not indexed. Ignoring violation org.sonar.api.rules.Violation@5e3666d9[resource=org.sonar.api.resources.File@459a60e1[key=<null>,
deprecatedKey=grails-app/controllers/LoginController.groovy,path=<null>,dir=grails-app/controllers,filename=LoginController.groovy,language=<null>],rule=Rule[id=431,name=Unused Method Parameter,key=org.codenarc.rule.unused.UnusedMethodParameterRule,configKey=UnusedMethodParameter,
plugin=grvy,severity=MINOR,isTemplate=false,status=READY,language=grvy,template=<null>],
message=Violation in class LoginController. Method parameter [newSignup] is never referenced in the method authComplete of class LoginController,severity=<null>,lineId=100,cost=<null>,createdAt=<null>,
switchedOff=false,checksum=<null>,isNew=false,isManual=false,permanentId=<null>,personId=<null>]
...
...
... 
11:21:45.661 WARN  - Resource is not indexed. Ignoring violation org.sonar.api.rules.Violation@6c95883d[resource=org.sonar.api.resources.File@4d23947c[key=<null>,deprecatedKey=test/unit/project/HomeControllerTests.groovy,
path=<null>,dir=test/unit/project,filename=HomeControllerTests.groovy,language=<null>],rule=Rule[id=643,name=Empty Method,key=org.codenarc.rule.basic.EmptyMethodRule,configKey=EmptyMethod,plugin=grvy,
severity=MINOR,isTemplate=false,status=READY,language=grvy,template=<null>],
message=Violation in class HomeControllerTests. The method tearDown is both empty and not marked with @Override,severity=<null>,lineId=121,cost=<null>,createdAt=<null>,switchedOff=false,checksum=<null>,
isNew=false,isManual=false,permanentId=<null>,personId=<null>]
11:21:45.661 INFO  - Sensor CodeNarc done: 1245 ms
11:21:45.662 INFO  - Sensor GroovySensor...
11:21:48.552 INFO  - GMetrics completed: 1493ms
11:21:49.580 INFO  - GMetrics completed: 941ms
11:21:51.285 INFO  - GMetrics completed: 1601ms
11:21:51.561 INFO  - GMetrics completed: 156ms
11:21:52.081 INFO  - GMetrics completed: 488ms
11:21:52.167 INFO  - Sensor GroovySensor done: 6505 ms
11:21:52.167 INFO  - Sensor Groovy CoberturaSensor...
11:21:52.167 INFO  - Analyzing Cobertura report: target/test-reports/cobertura/coverage.xml
11:21:52.955 INFO  - Sensor Groovy CoberturaSensor done: 788 ms
11:21:52.956 INFO  - Sensor ScmActivitySensor...
11:21:52.956 INFO  - Trying to guess scm provider from project layout...
11:21:52.956 INFO  - Found SCM type: git
11:21:52.958 INFO  - Retrieve SCM blame information with encoding UTF-8...
11:21:55.580 INFO  - Retrieve SCM blame information with encoding UTF-8 done: 2622 ms
11:21:55.581 INFO  - Sensor ScmActivitySensor done: 2625 ms
11:21:55.585 INFO  - Sensor InitialOpenIssuesSensor...
11:21:55.597 INFO  - Sensor InitialOpenIssuesSensor done: 11 ms
11:21:55.597 INFO  - Sensor ProjectLinksSensor...
11:21:55.607 INFO  - Sensor ProjectLinksSensor done: 10 ms
11:21:55.608 INFO  - Sensor VersionEventsSensor...
11:21:55.733 INFO  - Sensor VersionEventsSensor done: 125 ms
11:21:55.733 INFO  - Sensor FileHashSensor...
11:21:55.743 INFO  - Sensor FileHashSensor done: 9 ms
11:21:55.743 INFO  - Sensor CPD Sensor (wrapped)...
11:21:55.743 INFO  - DefaultCpdEngine is used for grvy
11:21:55.751 INFO  - Cross-project analysis disabled
11:21:56.330 INFO  - Sensor CPD Sensor (wrapped) done: 587 ms
11:21:56.918 INFO  - Execute decorators...
11:22:01.785 INFO  - Store results in database
11:22:10.256 INFO  - ANALYSIS SUCCESSFUL, you can browse http://localhost:9000/dashboard/index/project
11:22:10.392 INFO  - Executing post-job class org.sonar.plugins.core.issue.notification.SendIssueNotificationsPostJob
11:22:10.393 INFO  - Executing post-job class org.sonar.plugins.core.batch.IndexProjectPostJob
11:22:10.461 INFO  - Executing post-job class org.sonar.plugins.dbcleaner.ProjectPurgePostJob
11:22:10.473 INFO  - -> Keep one snapshot per day between 2014-11-25 and 2014-12-22
11:22:10.475 INFO  - -> Keep one snapshot per week between 2013-12-24 and 2014-11-25
11:22:10.475 INFO  - -> Keep one snapshot per month between 2009-12-29 and 2013-12-24
11:22:10.476 INFO  - -> Delete data prior to: 2009-12-29
11:22:10.482 INFO  - -> Clean project [id=225]
11:22:10.487 INFO  - <- Clean snapshot 8702
INFO: ------------------------------------------------------------------------
INFO: EXECUTION SUCCESS
INFO: ------------------------------------------------------------------------
Total time: 1:15.303s
Final Memory: 26M/737M
INFO: ------------------------------------------------------------------------

我已经在 SonarQube 服务器中安装了所有必要的插件在 为 SonarQube 服务器安装的插件 所有配置之后为什么这些规则被忽略并且为项目生成零问题?

4

2 回答 2

0

从 codenarc 报告中生成被忽略的问题时,我遇到了同样的问题。我在 sonarqube Nabble 服务中发现了类似的主题,可能从 codenarc 报告中从路径属性中删除每个“grails-app/domain/”、“grails-app/services/”等都可以解决问题,但这只是问题,没有关于如何自动执行此操作的信息。下面我附上了文章中这篇文章的链接。 http://sonarqube.15.x6.nabble.com/No-Issues-and-code-coverage-for-groovy-in-multi-language-project-with-SonarQube-4-2-tp5023761p5023806.html

于 2015-01-28T08:47:43.583 回答
0

我们遇到了同样的问题。这个问题围绕着 SonarQube 无法处理 CodeNarc 报告 XML 文件中的违规行为。正如在上一个答案中所共享的,XML 文件中的条目如下所示:

...
<Package path='grails-app' totalFiles='54' filesWithViolations='46' priority1='10' priority2='92' priority3='610'/>
<Package path='grails-app/controllers' totalFiles='16' filesWithViolations='16' priority1='6' priority2='71' priority3='299'/>
<Package path='grails-app/controllers/com' totalFiles='16' filesWithViolations='16' priority1='6' priority2='71' priority3='299'/>
<Package path='grails-app/controllers/com/...' totalFiles='16' filesWithViolations='16' priority1='6' priority2='71' priority3='299'/>
...

将导致它们被忽略。作为一种变通方法,我们编写了一个 groovy 脚本,从报告文件中删除“grails-app”和“grails-app/<folder>/”,使其如下所示:

...
<Package path='com' totalFiles='16' filesWithViolations='16' priority1='6' priority2='71' priority3='299'/>
<Package path='com/...' totalFiles='16' filesWithViolations='16' priority1='6' priority2='71' priority3='299'/>
...

该脚本在生成报告之后和执行声纳分析之前在我们的 Jenkins 构建期间运行。

我们正在运行 SonarQube 4.5.1 (LTS) 并使用 Groovy 插件的 1.0.1 版本。

于 2015-03-13T15:26:27.197 回答