SQL language (T-SQL, MySQL and PostgreSQL dialects) plugin for SonarQube
You can support this project and others via Paypal
Currently plug-in supports:
- Several SQL dialects by using ANTLR4 grammars:
- Reporting of issues found by:
- SQLCodeGuard
- MSBuild
- SQLCheck
- Custom rules reported by plugin
- Reporting of code coverage calculated by SQLCover
- Lines and comment lines measures reporting
- Cognitive and cyclomatic complexity metrics reporting
- Custom user rules. Configuration can be found at here
Tutorials:
Different plugin versions supports the following:
- 1.0.0 - Sonarqube 7.4+versions
- Download and install SonarQube
- Download plugin from the releases and copy it to sonarqube's extensions\plugins directory
- Start SonarQube and enable rules
- [TSQL] (Optional) Install SQLCodeGuard into your build machine where you plan to run sonar scanner
- [TSQL, MySQL, PotsgreSQL] (Optional) - Install SQLCheck into your build machine where you plan to run sonar scanner
- [TSQL] (Optional) Setup SQLCover reorting. You can check tsql example at here for full setup.
Please see examples on how to use different dialects.
Sonar settings for tsql. You can check example at here
sonar.projectKey=examples.sql.mysql.project
sonar.projectName=examples.sql.mysql.project
sonar.projectVersion=1.1
sonar.sources=src
# optional
sonar.language=sql
# optional as plugin defaults to tsql
sonar.sql.dialect=tsql
Sonar settings for pssql. You can check example at here
sonar.projectKey=examples.sql.mysql.project
sonar.projectName=examples.sql.mysql.project
sonar.projectVersion=1.1
sonar.sources=src
# optional
sonar.language=sql
sonar.sql.dialect=pssql
Sonar settings for mysql. You can check example at here
sonar.projectKey=examples.sql.mysql.project
sonar.projectName=examples.sql.mysql.project
sonar.projectVersion=1.1
sonar.sources=src
# optional
sonar.language=sql
sonar.sql.dialect=mysql
The following options are available for configuration:
- sonar.sql.dialect - SQL dialect for analysis. Defaults to tsql. Supported values are : tsql, mysql, pssql
- sonar.sql.rules.path - path to custome rules, can be directory or absolute file. Defaults to .. Multiple values are supported.
- sonar.sql.rules.suffix - custom rules suffix
- sonar.sql.tsql.ms.report - suffix to search path directories for MSBuild report. Defaults to staticcodeanalysis.results.xml. Can be absolute or relative
- sonar.sql.sqlcheck.path - Path to SQLCheck tool. Defaults to /usr/bin/sqlcheck
- sonar.sql.tsql.cg.path - Path to CodeGuard tool. Defaults to C:\Program Files\SQLCodeGuardCmdLine\SqlCodeGuard30.Cmd.exe
- sonar.sql.tsql.sqlcover.report - path to SQLCover report. Can be absolute or suffix to search in base dir. Defaults to Coverage.opencoverxml.
- sonar.sql.file.suffixes - file suffixes which will be reported belonging to SQL langauge. Defaults to .sql
- sonar.sql.sca.timeout - timeout value for static code analysis done by plugin in seconds. Defaults to 3600
- sonar.sql.sca.maxfilesize - limit in bytes for files to be analyzed by plugin. Defaults to 2097152
- sonar.sql.rules.skip - comma separated list of repoKey:ruleId pairs to select rules which will not be reported by the plugin, i.e. tsql-cg:ST008