
ZPA هي أداة تحليل الكود الثابتة والرمز الثابت لـ PL/SQL و Oracle SQL.
يمكنك استخدامه في مثيل Sonarqube المحلي. Sonarqube هو منصة مفتوحة لإدارة جودة الكود.
انظر بعض الأمثلة في حالة Sonarqube لدينا!
هل تريد استخدام هذا المحلل في مشروع مستضاف على Sonarcloud؟ جرب ZPA-Cli!
| نسخة ZPA | نسخة Sonarqube (Min/Max) |
|---|---|
| 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 نفسه ، تحتوي هذه الوحدة على جميع التعليمات البرمجية اللازمة للتكامل مع منصة Sonarqube.zpa-checks قواعد الترميز المدمجة التي توفرها ZPA.zpa-checks-testkit مساعد اختبار لقواعد الترميز ، يمكن استخدامه لاختبار القواعد المخصصة.zpa-core - قلب هذا المشروع. أنه يحتوي على Lexer ، المحلل ، والرمز المطلوب لفهم رمز PL/SQL ومعالجته.zpa-toolkit - أداة مرئية لمراجعة AST (شجرة بناء الجملة المجردة) التي تم إنشاؤها بواسطة المحلل. يجب أن تكون واجهة برمجة التطبيقات المعرضة للمكونات الإضافية المخصصة في الحزمة org.sonar.plugins.plsqlopen.api (إنها مطلب من خادم Sonarqube). لا يتم إعداد الفئات الموجودة خارج هذه الحزمة للاستهلاك الخارجي ، لذلك إذا كنت تستخدمها ، فيمكن أن ينهار الرمز الخاص بك دون أي إشعار آخر.
هناك مجموعتان من اختبارات التكامل:
لتشغيل اختبارات التكامل ، قم أولاً بتحديث العوامل الفرعية:
git submodule update --init --recursive
قم بإنشاء المكون الإضافي الرئيسي ومثال القواعد المخصصة:
./gradlew build publishToMavenLocal
./gradlew build -p plsql-custom-rules
ثم قم بتشغيل الاختبارات:
./gradlew integrationTest
بشكل افتراضي ، سيتم تنفيذ الاختبارات باستخدام Sonarqube 9.9 LTA. يمكنك abcd نسخة Sonarqube باستخدام Property sonar.runtimeVersion ، تمرير واحدة من LATEST_RELEASE[9.9] (من أجل Sonarqube LATEST_RELEASE[24.12]
./gradlew integrationTest -Dsonar.runtimeVersion=LATEST_RELEASE[9.9]