SQL Language (T-SQL, MySQL, PostgreSQL, Snowflake และ Vertica SQL Sidiacts) ปลั๊กอินสำหรับ 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
การตั้งค่าโซนาร์สำหรับ 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
การตั้งค่า Sonar สำหรับ 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
การตั้งค่า Sonar สำหรับ 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.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
นี่เป็นตัวอย่างสำหรับการตั้งค่าโซนาร์สำหรับโครงการซึ่งใช้กฎปลั๊กอินที่กำหนดเองจากไดเรกทอรีท้องถิ่น (อยู่ที่./ulules ไดเรกทอรี) คุณสามารถตรวจสอบตัวอย่างเต็มได้ที่นี่
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 Execution): sonar.lang.patterns.sql=na
เมื่อคุณต้องการการดำเนินการปลั๊กอิน SQL (จะปิดการใช้งานปลั๊กอิน PSSQL): sonar.lang.patterns.plsqlopen=na
ด้วยปลั๊กอิน - มีเครื่องมือ CLI เพิ่มเติม (ไม่จำเป็นต้องดำเนินการ Sonar):
การใช้งาน:
java -jar rulesHelper.jar - จะพิมพ์ความช่วยเหลือjava -jar rulesHelper.jar print text "SELECT * FROM dbo.test;" tsql - จะพิมพ์ต้นไม้ AST ที่แยกวิเคราะห์สำหรับภาษา TSQLข้อมูลความช่วยเหลือแบบเต็ม:
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"
Run: 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/e3296a5d1c69a031f24358aad87a4e46c46ea785555