The rule 'OCLint:ivar assignment outside accessors or init' does not exist

Я пытаюсь интегрировать SonarQube to generate report on my iOS project,

I am using Objective-C Sonar plugin

Когда я бегу ./run-sonar.sh

OCLint генерирует compile_commands.json файл в моем корневом каталоге.

and after that getting following error

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.

Can any one help me on this issue? Thanks AMR

Thnaks

3 ответа

У меня тоже была похожая ошибка с последней версией этого плагина, которая является вилкой той, которую вы использовали. Я понижаю версию OCLint с 0.11 до 0.10.1, и все работает отлично. Кажется, что правила OCLint, определенные в плагине, отличались от версии OCLint, установленной на моем сервере.

У меня была похожая ошибка. У моего сонарного сервера было два плагина анализатора кода объектива-c. Плагин Sonar для Objective C (бесплатно) и плагин SonarSource Objective-C (коммерческий)

Когда я удалил (деинсталлировал) один из плагинов с сервера сонара, ошибка перестала появляться

Я не уверен, какую версию плагина target-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. Переопределить исходный файл jar плагина в ${SONAR_INSTALLATION_FOLDER}/extensions/plugins/Перезапустите гидролокатор, проблема может исчезнуть.

Повторите этот шаг для всех подобных проблем, с которыми вы столкнулись.

Другие вопросы по тегам