我正在尝试整合SonarQube
以生成关于iOS project
,
当我运行./run-sonar.sh
OCLint
在我的根目录中生成compile_commands.json
文件。
之后得到以下错误
11:24:39.782 INFO - Processing OCLint report /Users/.......app/./sonar-reports/oclint.xml
11:24:39.899 ERROR - Reporting 1073 violations.
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
Total time: 16.240s
Final Memory: 6M/86M
INFO: ------------------------------------------------------------------------
ERROR: Error during Sonar runner execution
org.sonar.runner.impl.RunnerException: Unable to execute Sonar
at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:91)
at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75)
at java.security.AccessController.doPrivileged(Native Method)
at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69)
at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50)
at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102)
at org.sonar.runner.api.Runner.execute(Runner.java:100)
at org.sonar.runner.Main.executeTask(Main.java:70)
at org.sonar.runner.Main.execute(Main.java:59)
at org.sonar.runner.Main.main(Main.java:53)
Caused by: The rule 'OCLint:ivar assignment outside accessors or init' does not exist.
任何人都可以帮我解决这个问题吗? 谢谢 AMR
Thnaks
答案 0 :(得分:0)
我有类似的错误。我的声纳服务器有两个Objective-c代码分析器插件。 Sonar Plugin for Objective C (free)和SonarSource Objective-C plugin (commercial)
。{{3}}和{{3}}当我从声纳服务器中删除(卸载)其中一个插件时,错误停止发生
答案 1 :(得分:0)
我对此plugin的最后一个版本也有类似的错误,它是您使用的版本的分支。 我将我的OCLint版本从0.11降级到0.10.1,一切都运行良好。 似乎插件中定义的OCLint规则与我服务器上安装的OCLint版本不同。
答案 2 :(得分:-1)
我不确定你使用的是什么版本的objective-c-sonar插件。 我之前解决了类似的问题。
转到${SONAR_INSTALLATION_FOLDER}/extensions/plugins/
,将sonar-objective-c-plugin-${version}.jar
复制到其他地方。
解压缩jar文件,然后编辑下面的文件
org/sonar/plugins/objectivec/profile-oclint.xml
在xml文件的布局之后添加您缺少的规则,
可能看起来类似于
<rule>
<repositoryKey>OCLint</repositoryKey>
<key>ivar assignment outside accessors or init</key>
</rule>
并修改另一个文件org/sonar/plugins/objectivec/rules-oclint.xml
<rule>
<key>ivar assignment outside accessors or init</key>
<name>ivar assignment outside accessors or init</name>
<priority>MAJOR</priority>
<description>ivar assignment outside accessors or init</description>
</rule>
然后使用zip将解压缩的文件打包为新的jar文件。
覆盖${SONAR_INSTALLATION_FOLDER}/extensions/plugins/
中的原始插件jar文件,重新启动声纳,问题可能已经消失。
对遇到的所有类似问题重复此步骤。