sonar sql plugin
1.4.0 release
SQL語言(T-SQL,MySQL,PostgreSQL,Snowflake和Vertica SQL方言)Sonarqube的插件
您可以通過PayPal支持該項目和其他項目
當前插件支持:
教程:
不同的插件版本支持以下內容:
請參閱有關如何使用不同方言的示例。
tsql的聲納設置。您可以在這裡檢查示例
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設置為PSSQL。您可以在這裡檢查示例
sonar.projectKey=examples.sql.psql.project
sonar.projectName=examples.sql.psql.project
sonar.projectVersion=1.1
sonar.sources=src
# optional
sonar.language=sql
sonar.sql.dialect=pssqlv2
聲納設置Mysql。您可以在這裡檢查示例
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
VSQL(Vertica SQL)的聲納設置。您可以在這裡檢查示例
sonar.projectKey=examples.sql.vsql.project
sonar.projectName=examples.sql.vsql.project
sonar.projectVersion=1.1
sonar.sources=src
# optional
sonar.language=sql
sonar.sql.dialect=vsql
Sonar設置雪花。您可以在這裡檢查示例
sonar.projectKey=examples.sql.snowflake.project
sonar.projectName=examples.sql.snowflake.project
sonar.projectVersion=1.1
sonar.sources=src
# optional
sonar.language=sql
sonar.sql.dialect=snowflake
這是項目的聲納設置的一個示例,該設置使用了本地目錄(位於./rules目錄)的自定義插件規則。您可以在這裡檢查完整示例
sonar.projectKey=pssql.custom.rules
sonar.projectName=Test PSSQL custom rules project
sonar.projectVersion=1.0
sonar.sources=src
# optional
sonar.language=sql
sonar.sql.dialect=pssqlv2
# change these
sonar.sql.rules.path=./rules
以下選項可用於配置:
請配置其他屬性:
當您想要plsql插件執行(這將禁用執行SQL插件): sonar.lang.patterns.sql=na
當您想要SQL插件執行(這將禁用PSSQL插件): sonar.lang.patterns.plsqlopen=na
使用插件 - 還有其他CLI工具可用(不需要聲納執行):
用法:
java -jar rulesHelper.jar將打印幫助java -jar rulesHelper.jar print text "SELECT * FROM dbo.test;" tsql將打印對TSQL方言的AST樹打印完整的幫助信息:
Please pass the following:
action (print, verify or analyze)
type (text or file)
value (sql string or path to rules file/folder)
dialect (tsql, pssql, mysql, pssql, pssqlv2, snowflake)
folder (folder to analyze, only applicable when using analyze action)
Example to print AST tree:
print text "SELECT * FROM dbo.test;" tsql
Example to verify custom rules definitions:
verify file "c:/tests/customRules.rules;" mysql
Example to execute custom rules and plugin rules against specified folder:
analyze file "c:/tests/customRules.rules;" snowflake "c:docssrc"
Example to execute sql analysis againt specified folder:
analyze file "NA" snowflake "c:docssrc"
運行: mvn versions:display-dependency-updates spotless:check spotless:apply install
添加了容器定義,可通過VSCODE輕鬆開發。下載遠程容器擴展程序,然後弄清楚Maven目標。 
mkdir -p ~/workspace/sonarqube/extensions/plugins
cp ~/workspace/sonar-sql-plugin/src/sonar-sql-plugin/target/sonar-sql-plugin-1.1.0.jar ~/workspace/sonarqube/extensions/plugins
docker run -i --name sonarqube
-p 9000:9000
-v ~/workspace/sonarqube/conf:/opt/sonarqube/conf
-v ~/workspace/sonarqube/extensions:/opt/sonarqube/extensions
-v ~/workspace/sonarqube/logs:/opt/sonarqube/logs
-v ~/workspace/sonarqube/data:/opt/sonarqube/data
sonarqube
docker start sonarqube
docker run
--rm
-e SONAR_HOST_URL="http://127.0.0.1:9000"
-e SONAR_LOGIN="YOUR_ADMIN_TOKEN_HERE"
-e SONAR_PASSWORD="YOUR_ADMIN_PWD_HERE"
--network="host"
-v "FOLDER_WITH_THE_CODE:/usr/src"
sonarsource/sonar-scanner-cli -X
示例添加雪花語法的示例:https://github.com/gretard/sonar-sql-plugin/commit/e3296a5d1c69a031f24358aad87a46e46c46ea78555