SonarQube JSON Analyzer :: SonarQube Plugin

Enables analysis of JSON files.

Лицензия

Лицензия

Категории

Категории

JSON Данные
Группа

Группа

org.codehaus.sonar-plugins.json
Идентификатор

Идентификатор

sonar-json-plugin
Последняя версия

Последняя версия

2.3
Дата

Дата

Тип

Тип

sonar-plugin
Описание

Описание

SonarQube JSON Analyzer :: SonarQube Plugin
Enables analysis of JSON files.
Ссылка на сайт

Ссылка на сайт

https://github.com/racodond/sonar-json-plugin
Организация-разработчик

Организация-разработчик

David RACODON

Скачать sonar-json-plugin

Зависимости

compile (2)

Идентификатор библиотеки Тип Версия
org.codehaus.sonar-plugins.json : json-frontend jar 2.3
org.codehaus.sonar-plugins.json : json-checks jar 2.3

provided (1)

Идентификатор библиотеки Тип Версия
org.sonarsource.sonarqube : sonar-plugin-api jar 5.6

test (4)

Идентификатор библиотеки Тип Версия
org.sonarsource.sonarqube : sonar-testing-harness jar 5.6
junit : junit jar 4.12
org.mockito : mockito-all jar 1.10.19
org.easytesting : fest-assert jar 1.4

Модули Проекта

Данный проект не имеет модулей.

Release Build Status AppVeyor Build Status

Quality Gate status Lines of Code Coverage

SonarQube JSON Analyzer

Disclaimer

I don't want to keep maintaining this plugin. Feel free to ping me if you want to take over.

Description

This SonarQube plugin analyzes JSON files and:

  • Computes metrics: lines of code, statements, etc.
  • Checks various guidelines to find out potential bugs and code smells through more than 12 checks
  • Provides the ability to write your own checks

Usage

  1. Download ad install SonarQube
  2. Install the JSON plugin by a direct download. The latest version is compatible with SonarQube 6.7+
  3. Install your favorite scanner (SonarQube Scanner, Maven, Ant, etc.)
  4. Analyze your code

Custom Checks

You're thinking of new valuable rules? Version 2.0 or greater provides an API to write your own custom checks. A sample plugin with detailed explanations is available here. If your custom rules may benefit the community, feel free to create a pull request in order to make the rule available in the JSON analyzer.

You're thinking of new rules that may benefit the community but don't have the time or the skills to write them? Feel free to create an issue for your rules to be taken under consideration.

Troubleshooting

If a JSON file is containing some heavily nested objects (more than a hundred nested levels), you may face a StackOverflowError looking like:

Exception in thread "main" java.lang.StackOverflowError
	at com.sonar.sslr.impl.typed.SyntaxTreeCreator.convertChildren(SyntaxTreeCreator.java:128)
	at com.sonar.sslr.impl.typed.SyntaxTreeCreator.visitNonTerminal(SyntaxTreeCreator.java:119)
	at com.sonar.sslr.impl.typed.SyntaxTreeCreator.visit(SyntaxTreeCreator.java:72)
	at com.sonar.sslr.impl.typed.SyntaxTreeCreator.visitNonTerminal(SyntaxTreeCreator.java:89)
	at com.sonar.sslr.impl.typed.SyntaxTreeCreator.visit(SyntaxTreeCreator.java:72)
	at com.sonar.sslr.impl.typed.SyntaxTreeCreator.convertChildren(SyntaxTreeCreator.java:129)
	at com.sonar.sslr.impl.typed.SyntaxTreeCreator.visitNonTerminal(SyntaxTreeCreator.java:119)
	...

Increasing the JVM stack size should fix your issue.

If you are running your analysis with:

  • The SonarQube Scanner, set the SONAR_SCANNER_OPTS environment variable to -Xss10m for instance
  • Maven, set the MAVEN_OPTS environment variable to -Xss10m for instance

and rerun your analysis.

Available Rules

Generic

  • BOM should not be used for UTF-8 files
  • File names should comply with a naming convention
  • Files should contain an empty new line at the end
  • Regular expression on key
  • Tabulation characters should not be used

Puppet

  • "author" should match the required value in Puppet "metadata.json" files
  • "license" should be valid in Puppet "metadata.json" files
  • "license" should match the required value in Puppet "metadata.json" files
  • "version" should be a semantic version in Puppet "metadata.json" files
  • Deprecated keys should be removed from Puppet "metadata.json" files
  • Duplicated dependencies should be removed from Puppet "metadata.json" files
  • Puppet "metadata.json" files should define all the required keys

Версии библиотеки

Версия
2.3
2.2
2.1
2.0