简体   繁体   中英

Sonar runner codenarc sensor ignore violation from Codenarc

I have grails project with CodeNarc Plugin installed and generated xml report. Installed and configured SonarQube with following configurations and versions:

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

Sonar-project.properties file contains

#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    

Generated CodeNarc XML report and added its report path in file. Sonar runner analyse project but with zero issues

Sonar runner unable to index resources and throws warning for CodeNarc rules violations.

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: ------------------------------------------------------------------------

I have installed all necessary plugins in SonarQube Server SonarQube Server的已安装插件 After all configuration why these rules are getting ignored and zero issues generated for project ?

I have the same problem with getting ignored issues generated from codenarc report. I found similar topic in sonarqube Nabble service that probably removing from codenarc report from path attributes every "grails-app/domain/", "grails-app/services/" etc. will resolve the problem, but this is only the source of the problem, there is nothing about how to do it automatically. Below I attached the link to this post in the article. http://sonarqube.15.x6.nabble.com/No-Issues-and-code-coverage-for-groovy-in-multi-language-project-with-SonarQube-4-2-tp5023761p5023806.html

We had this same problem. The issue surrounded SonarQube not being able to process violations in the CodeNarc report XML file. As shared in a previous answer, entries in the XML file that looks like the following:

...
<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'/>
...

will cause them to be ignored. As a work-around, we wrote a groovy script that strips out the "grails-app" and "grails-app/<folder>/" from the report file so that it looks like the following:

...
<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'/>
...

The script is run during our Jenkins builds after the report is generated and before the Sonar analysis is performed.

We are running SonarQube 4.5.1 (LTS) and using the version 1.0.1 of the Groovy plugin.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM