3

CodeNarcプラグインがインストールされ、xmlレポートが生成されたgrailsプロジェクトがあります。次の構成とバージョンで SonarQube をインストールして構成しました。

Grails 2.3.7
SonarQube サーバー - 4.5
SonarQube ランナー - 2.4
CodeNarc プラグイン - 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 レポートを生成し、そのレポート パスをファイルに追加しました。ソナーランナーはプロジェクトを分析しますが、問題はありません

ソナー ランナーがリソースのインデックスを作成できず、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 Server に必要なすべてのプラグインをインストールしまし SonarQube サーバー用にインストールされたプラグイン た すべての構成の後、これらのルールが無視され、プロジェクトで問題が発生しないのはなぜですか?

4

2 に答える 2

0

codenarc レポートから生成された無視された問題を取得するという同じ問題があります。「grails-app/domain/」、「grails-app/services/」などごとにパス属性から codenarc レポートからおそらく削除することで問題が解決するという sonarqube Nabble サービスで同様のトピックを見つけましたが、これは問題、それを自動的に行う方法については何もありません。以下に、この投稿へのリンクを記事に添付しました。 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'/>
...

それらは無視されます。回避策として、次のようにレポート ファイルから「grails-app」と「grails-app/<folder>/」を削除する groovy スクリプトを作成しました。

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

スクリプトは、レポートが生成された後、Sonar 分析が実行される前に、Jenkins ビルド中に実行されます。

SonarQube 4.5.1 (LTS) を実行し、バージョン 1.0.1 の Groovy プラグインを使用しています。

于 2015-03-13T15:26:27.197 に答える