
ZPA เป็นเครื่องมือวิเคราะห์ตัวแยกวิเคราะห์และรหัสสแตติกสำหรับ PL/SQL และ Oracle SQL
คุณสามารถใช้มันในอินสแตนซ์ของ Sonarqube ในสถานที่ Sonarqube เป็นแพลตฟอร์มแบบเปิดเพื่อจัดการคุณภาพรหัส
ดูตัวอย่างบางส่วนในอินสแตนซ์ Sonarqube ของเรา!
คุณต้องการใช้เครื่องวิเคราะห์นี้ในโครงการที่โฮสต์บน Sonarcloud หรือไม่? ลอง zpa-cli!
| เวอร์ชัน ZPA | เวอร์ชัน Sonarqube (ขั้นต่ำ/สูงสุด) |
|---|---|
| 3.6.0 | 9.9 / 10.7 |
| 3.7.0 (ในการพัฒนา) | 9.9 / 24.12 |
ชุดเครื่องมือ ZPA เป็นเครื่องมือที่มองเห็นได้เพื่อตรวจสอบ AST (แผนผังไวยากรณ์นามธรรม) และตารางสัญลักษณ์ที่สร้างขึ้นโดยตัวแยกวิเคราะห์
ชุดเครื่องมือ ZPA ล่าสุดสามารถดาวน์โหลดได้จากหน้ารีลีสและต้องใช้ JDK 11 หรือใหม่กว่า
ทุกคนยินดีที่จะมีส่วนร่วม โปรดอ่านแนวทางการบริจาคของเราสำหรับข้อมูลเพิ่มเติม
มีบางสิ่งที่คุณต้องรู้เกี่ยวกับรหัส มันแบ่งออกเป็นโมดูลเหล่านี้:
plsql-custom-rules โครงการสาธิตแสดงวิธีขยาย ZPA ด้วยกฎการเข้ารหัสที่กำหนดเองsonar-zpa-plugin ปลั๊กอิน Sonarqube เองโมดูลนี้มีรหัสทั้งหมดที่จำเป็นในการรวมเข้ากับแพลตฟอร์ม Sonarqubezpa-checks กฎการเข้ารหัสในตัวที่จัดทำโดย ZPAzpa-checks-testkit ทดสอบตัวช่วยสำหรับกฎการเข้ารหัสสามารถใช้เพื่อทดสอบกฎที่กำหนดเองzpa-core - หัวใจของโครงการนี้ มันมี Lexer, parser และรหัสที่จำเป็นในการทำความเข้าใจและประมวลผลรหัส PL/SQLzpa-toolkit - เครื่องมือภาพในการตรวจสอบ AST (แผนผังไวยากรณ์นามธรรม) ที่สร้างขึ้นโดยตัวแยกวิเคราะห์ API ที่สัมผัสกับปลั๊กอินที่กำหนดเองจะต้องอยู่ในแพ็คเกจ org.sonar.plugins.plsqlopen.api (เป็นข้อกำหนดจากเซิร์ฟเวอร์ Sonarqube) ชั้นเรียนที่อยู่นอกแพ็คเกจนี้ไม่ได้เตรียมไว้สำหรับการบริโภคภายนอกดังนั้นหากคุณใช้รหัสของคุณสามารถแตกหักได้โดยไม่ต้องแจ้งให้ทราบล่วงหน้า
มีการทดสอบการรวมสองชุด:
ในการเรียกใช้การทดสอบการรวมให้อัปเดต submodules ครั้งแรก:
git submodule update --init --recursive
สร้างปลั๊กอินหลักและตัวอย่างกฎที่กำหนดเอง:
./gradlew build publishToMavenLocal
./gradlew build -p plsql-custom-rules
จากนั้นเรียกใช้การทดสอบ:
./gradlew integrationTest
โดยค่าเริ่มต้นการทดสอบจะถูกดำเนินการโดยใช้ Sonarqube 9.9 LTA คุณสามารถเปลี่ยนเวอร์ชัน Sonarqube โดยใช้คุณสมบัติ sonar.runtimeVersion ผ่านหนึ่งใน LATEST_RELEASE[9.9] (สำหรับ Sonarqube 9.9.x LTA), LATEST_RELEASE[24.12] (การเปิดตัวอย่างเป็นทางการล่าสุด) หรือ abcd สำหรับการเปิดตัวที่แน่นอน
./gradlew integrationTest -Dsonar.runtimeVersion=LATEST_RELEASE[9.9]