تعرف على detekt ، أداة تحليل التعليمات البرمجية الثابتة للغة برمجة Kotlin . قم بزيارة موقع المشروع للحصول على أدلة التثبيت وأوصاف القواعد وخيارات التكوين والمزيد.
تحليل رائحة الكود لمشاريع Kotlin الخاصة بك.
مجموعات قواعد قابلة للتكوين بدرجة عالية.
قم بإنشاء خطوط أساسية لمنع المشكلات الحالية للمشاريع القديمة مع التأكد من عدم ظهور مشكلات جديدة.
منع المشكلات في الملفات المصدر باستخدام التعليقات التوضيحية @Suppress
.
دعم تنسيقات التقارير المختلفة: HTML وMarkdown وSARIF وXML (Checkstyle) والتقارير المخصصة.
قم بتوسيع نطاق الاكتشاف باستخدام مجموعات القواعد والتقارير المخصصة.
تعتمد تقارير التعقيد على سطور التعليمات البرمجية والتعقيد الدوري وعدد روائح التعليمات البرمجية.
تكامل الطرف الأول مع Gradle من خلال البرنامج الإضافي Gradle الخاص بنا.
مجتمع من المكونات الإضافية التابعة لجهات خارجية يضيف المزيد من القواعد والميزات للكشف.
دليل التغيير والهجرة
خيارات CLI المتاحة
مجموعة القواعد وأوصاف القواعد
كتابة القواعد المخصصة وتوسيع نطاق الكشف
قمع المشاكل في التعليمات البرمجية
قمع المشكلات عبر الملف الأساسي
تكوين الكشف
أمثلة على نماذج تكامل Gradle:
مشروع متعدد (Kotlin DSL)
مشروع واحد (Groovy DSL)
مشروع واحد (مكون إضافي غير رسمي لـ Maven)
حليقة -sSLO https://github.com/detekt/detekt/releases/download/v[version]/detekt-cli-[version]-all.jar java -jar detekt-cli-[version]-all.jar --help
يمكنك العثور على طرق أخرى لتثبيت detekt هنا
الإضافات { المعرف ("io.gitlab.arturbosch.detekt") الإصدار "[الإصدار]"} المستودعات { مافن سنترال () } كشف { buildUponDefaultConfig = true // التكوين المسبق defaultsallRules = false // تنشيط جميع القواعد المتاحة (حتى غير المستقرة).config.setFrom("$projectDir/config/detekt.yml") // أشر إلى قواعد تعريف التكوين المخصص للتشغيل، واستبدال خط أساس السلوك الافتراضي = file("$projectDir/config/baseline.xml") // طريقة لقمع المشكلات قبل تقديم detekt} Tasks.withType().configureEach { التقارير { html.required.set(true) // لاحظ النتائج في متصفحك باستخدام مقتطفات البنية والتعليمات البرمجيةxml.required.set(true) // تنسيق يشبه نمط الاختيار بشكل أساسي لعمليات التكامل مثل Jenkinssarif.required.set(true) // تنسيق SARIF الموحد ( https://sarifweb.azurewebsites.net/) لدعم عمليات التكامل مع GitHub Code Scanningmd.required.set(true) // تنسيق Markdown البسيط} }// رائع DSLtasks.withType(Detekt).configureEach { jvmTarget = "1.8"} Tasks.withType(DetektCreateBaselineTask).configureEach { jvmTarget = "1.8"}// أو// Kotlin DSLtasks.withType ().configureEach { jvmTarget = "1.8"} Tasks.withType ().configureEach { jvmTarget = "1.8"}
راجع maven Central للحصول على الإصدارات والسوناتيب للحصول على لقطات.
إذا كنت تريد استخدام إصدار SNAPSHOT، فيمكنك العثور على مزيد من المعلومات في صفحة الوثائق هذه.
Gradle 6.8.3+ هو الحد الأدنى من المتطلبات. ومع ذلك، فإن الإصدارات الموصى بها مع الإصدارات الأخرى الموصى بها من الأدوات هي:
نسخة الكشف | جرادل | كوتلين | أغب | جافا المستوى المستهدف | نسخة JDK ماكس |
---|---|---|---|---|---|
1.23.7 | 8.10 | 2.0.10 | 8.5.2 | 1.8 | 21 |
قائمة الإصدارات الموصى بها لإصدار detekt السابق مدرجة هنا.
يوفر detekt نفسه غلافًا فوق ktlint كمجموعة قواعد formatting
التي يمكن إضافتها بسهولة إلى تكوين Gradle:
التبعيات { detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:[الإصدار]") }
وبالمثل، هناك مجموعات قواعد إضافية متاحة لـ detekt من detekt:
التبعيات { detektPlugins("io.gitlab.arturbosch.detekt:detekt-rules-libraries:[الإصدار]") detektPlugins("io.gitlab.arturbosch.detekt:detekt-rules-ruleauthors:[الإصدار]") }
لمزيد من المعلومات قم بزيارة Detekt Marketplace.
وبالمثل يمكن إضافة ملحقات مخصصة لdetekt.
انظر المساهمة
شكرا لجميع الأشخاص الذين ساهموا في الكشف!
كما ذكر في...
إلى Detekt 2.0 وما بعده!
droidcon لندن 2021 - Detekt - حالة الاتحاد
KotlinConf 2018 - Safe(r) Kotlin Code - أدوات التحليل الثابتة لـ Kotlin بقلم مارفن رامين
droidcon NYC 2018 - تحليل الكود الثابت لـ Kotlin
Kotlin حول أدوات جودة الكود - بواسطة عرض شرائح @vanniktech
دمج detekt في سير العمل
تحقق من جودة كود Kotlin
أدوات تحليل Kotlin الثابتة
هل مازلت تشمها؟: دراسة مقارنة بين لغة جافا ولغة كوتلين بواسطة فلاوزينو وآخرون.
منع الأنماط المضادة للبرامج باستخدام Detekt
التكامل:
التكامل IntelliJ
التكامل SonarQube
تكامل TCA (تحليل كود Tencent).
كوداسي
مكون Gradle الإضافي الذي يقوم بتكوين Error Prone وCheckstyle وPMD وCPD وLint وDetekt وKtlint
Violations Lib هي مكتبة Java لتحليل ملفات التقارير مثل تحليل التعليمات البرمجية الثابتة.
سبوتنيك هي أداة مجانية لمراجعة التعليمات البرمجية الثابتة وتوفر الدعم لـ Detekt
البرنامج المساعد Detekt Maven الذي يغلف Detekt CLI
البرنامج المساعد Detekt Bazel الذي يغلف Detekt CLI
يساعد برنامج Gradle الإضافي في تسهيل فحص GitHub PR والتعليق التلقائي على الانتهاكات
عامل الكود
إجراء جيثب: اكتشاف الكل
إجراء GitHub: اكتشاف الإعداد
يمكن العثور على القواعد والتقارير المخصصة من الجهات الخارجية على Detekt Marketplace الخاص بنا.
JetBrains - إنشاء IntelliJ + Kotlin
PMD & Checkstyle & ktlint - أفكار لقيم العتبة وقواعد النمط