Cranked sonar sonar transducer ignores Codenarc violation

I have a grails project with CodeNarc Plugin installed and an xml report generated. Installed and configured SonarQube with the 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 file path in the file. Sonar runner analyzes the project, but with zero problems

Sonar Runner is unable to index resources and warns of CodeNarc rule 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 the required plugins in SonarQube Server Installed Plugin for SonarQube Server After all the setup, why are these rules ignored and zero issues generated for the project?

+3


source to share


2 answers


I have the same problem getting ignored issues generated from the codenarc report. I found a similar thread on the Sonarqube Nabble service which probably removed from the codenarc report from the path attributes every "grails-app / domain /", "grails-app / services /" etc. will resolve the problem, but that's only the source of the problem, there is nothing about how to do it automatically. Below I have attached a 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



0


source


We had the same problem. The problem was surrounding SonarQube which was unable to handle violations in the CodeNarc XML report file. As stated in the previous answer, the entries in the XML file look like this:

...
<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 working solution, we wrote a groovy script that removes "grails-app" and "grails-app / <folder> //" from the report file so that it looks like this:



...
<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 Jenkins build after report generation and before sonar analysis is performed.

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

0


source







All Articles