2

我正在尝试集成SonarQube以生成关于我的报告iOS project

我正在使用Objective-C 声纳插件

当我跑步时./run-sonar.sh

OCLintcompile_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

纳克斯

4

3 回答 3

0

我有一个类似的错误。我的声纳服务器有两个objective-c 代码分析器插件。Objective C的Sonar 插件(免费)SonarSource Objective-C 插件(商业)

当我从声纳服务器中删除(卸载)其中一个插件时,错误停止发生

于 2014-10-23T17:34:31.697 回答
0

我在这个插件的最后一个版本中也遇到了类似的错误,它是你使用的那个插件的一个分支。我将我的 OCLint 版本从 0.11 降级到 0.10.1,一切正常。插件中定义的 OCLint 规则似乎与我服务器上安装的 OCLint 版本不同。

于 2016-09-28T14:57:51.317 回答
-1

我不确定您使用的是什么版本的objective-c-sonar 插件。我以前解决过类似的问题。

Goto ${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 文件。覆盖原来的插件 jar 文件${SONAR_INSTALLATION_FOLDER}/extensions/plugins/,重新启动声纳,问题可能就消失了。

对您遇到的所有类似问题重复该步骤。

于 2016-08-12T02:32:08.320 回答