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/
Перезапустите гидролокатор, проблема может исчезнуть.
Повторите этот шаг для всех подобных проблем, с которыми вы столкнулись.