يلتف تحليل الكود الثابت حول CheckStyle و Spotbugs و PMD و CPD ، مما يوفر ميزات وملحقات جديدة للمكونات الإضافية المغطاة ، مما يسهل استخدامها وتوفير نتائج أفضل مع الحد الأدنى من الجهد.
خارج الصندوق ، مع تطبيق المكون الإضافي الذي تحصل عليه فقط:
R.class و BuildConfig.class )نحن على بوابة البرنامج المساعد ، حتى تتمكن من القيام ببساطة:
plugins {
id ' com.monits.staticCodeAnalysis ' version ' 3.1.1 '
}أو يمكنك القيام أيضًا
buildscript {
repositories {
maven {
url ' https://plugins.gradle.org/m2/ '
}
}
dependencies {
classpath ' com.monits:static-code-analysis-plugin:3.1.1 '
}
}
apply plugin : ' com.monits.staticCodeAnalysis 'أو مباشرة من JCenter
buildscript {
repositories {
jcenter()
}
dependencies {
classpath ' com.monits:static-code-analysis-plugin:3.1.1 '
}
}
apply plugin : ' com.monits.staticCodeAnalysis ' | إصدار البرنامج المساعد | نسخة Gradle | إصدار البرنامج المساعد Android Gradle |
|---|---|---|
| 3.x | 5.6+ | 3.3.0+ |
| 2.6.12 | 2.3 حتى 5.6.x | 1.1.x حتى 3.5.x |
قبل الإصدار 3.0.0 تم استخدام FindBugs بدلاً من بقع Spotbugs.
يعد تكوين تحليل التعليمات البرمجية الثابتة بسيطة للغاية وبديهية بفضل DSL. يمكنك اختيار المكون الإضافي المغطى بتشغيل ملفات التكوين وتعيينها. هنا مثال سريع
staticCodeAnalysis {
spotbugs = true
checkstyle = true
pmd = true
cpd = true
androidLint = true
ignoreErrors = true
// default rules
spotbugsExclude = " $p roject . rootProject . projectDir /config/spotbugs/excludeFilter.xml "
checkstyleRules = ' https://raw.githubusercontent.com/Monits/static-code-analysis-plugin/staging/defaults/checkstyle/checkstyle-cache.xml '
pmdRules = [ ' https://raw.githubusercontent.com/Monits/static-code-analysis-plugin/staging/defaults/pmd/pmd.xml ' ,
' https://raw.githubusercontent.com/Monits/static-code-analysis-plugin/staging/defaults/pmd/pmd-android.xml ' ]
androidLintConfig = ' https://raw.githubusercontent.com/Monits/static-code-analysis-plugin/staging/defaults/android/android-lint.xml '
sourceSetConfig {
test { // or the name of any other sourceset
// use a more relaxed ruleset
checkstyleRules = ' config/checkstyle/test-checkstyle.xml '
spotbugsExclude = ' config/spotbugs/test-spotbugs.xml '
pmdRules = [ ' config/pmd/test-pmd.xml ' ,
' https://raw.githubusercontent.com/Monits/static-code-analysis-plugin/staging/defaults/pmd/pmd-android.xml ' ]
}
}
}بشكل افتراضي ، يتم تطبيق جميع المكونات الإضافية ، ولن تفشل الأخطاء في الإنشاء ، وسيتم أخذ القواعد والاستثناءات من أحدث الافتراضيات لهذا المستودع
قبل الإصدار 3.0.0 تم استخدام FindBugs بدلاً من بقع Spotbugs. إذا كنت تستخدم الإصدار القديم ، فإن DSL مكافئ ، ولكنه يستخدم findbugs بدلاً من spotbugs لجميع الخصائص.
يتم تخطي جميع خصائص V2.x FindBugs DSL تلقائيًا إلى أقواس Spotbugs في V3.x لتسهيل الترقية
يمكن تجاوز القواعد التي يستخدمها PMD و Spotbugs و CheckStyle لكل مصلحة تحت كتلة sourceSetConfig .
لتضمين قواعد الوبر المخصصة ، يمكنك ببساطة تضمين الجرار كتبعيات تحت androidLint . على سبيل المثال ، يمكنك تضمين Monits 'Android Binters عن طريق إضافة:
dependencies {
androidLint ' com.monits:android-linters:1.+ '
}سيضيف المكون الإضافي المهام التالية:
cpdcheckstyle ، يعتمد على:checkstyleSourcesetname لكل مجموعة مصدر ( checkstyleMain ، checkstyleTest ، على ذلك).spotbugs ، يعتمد على:spotbugsSourcesetname لكل مجموعة مصدر ( spotbugsMain ، spotbugsTest ، حتى).pmd ، يعتمد على:pmdSourcesetname لكل مجموعة مصدر ( pmdMain ، pmdTest ، لذلك). قبل الإصدار 3.0.0 تم استخدام FindBugs بدلاً من بقع Spotbugs. لا تزال مهام findbugs* القديمة متوفرة وخريطة لمهمة spotbugs* المقابلة
جميع المهام ، مدمجة ليتم تشغيلها كجزء من مهمة check من المكون الإضافي Java.
كما هو الحال دائمًا ، لا تتردد في المساهمة بأي شكل أو شكل ، ونحن نتطلع إلى ملاحظاتك!.
إذا كنت ترى أشياء تُعتقد أنك لا ينبغي أن تكون واحدة من شيئين:
نظرًا لأن كل أداة لها آلية قمع خاصة بها ، يجب أن تشير إلى وثائقها:
@SupressFBWarnings javadocحقوق الطبع والنشر 2010-2017 Monits SA
مرخصة بموجب ترخيص Apache ، الإصدار 2.0 ("الترخيص") ؛ لا يجوز لك استخدام هذا العمل إلا في الامتثال للترخيص. يمكنك الحصول على نسخة من الترخيص على:
http://www.apache.org/licenses/license-2.0