
Android और Java प्रोजेक्ट्स के लिए स्टैटिक एनालिसिस टूल्स की आसान सेटअप।
⚠️ इस परियोजना का एक फोर्क https://github.com/GradleUp/static-analysis-plugin/ पर बनाए रखा गया है कृपया इसके बजाय
com.gradleup.static-analysisप्लगइन आईडी का उपयोग करके माइग्रेट करें।
एक Gradle प्लगइन जो विभिन्न Android, Java या Kotlin प्रोजेक्ट्स में समान स्थैतिक विश्लेषण उपकरणों के सेटअप को आसानी से लागू करने में मदद करता है।
समर्थन करता है कार्य कॉन्फ़िगरेशन परिहार ताकि इस प्लगइन का उपयोग करने पर बिल्ड गति में कोई अतिरिक्त ओवरहेड न हो!
Gradle कई लोकप्रिय स्थैतिक विश्लेषण (Checkstyle, PMD, FindBugs, आदि) का समर्थन अंतर्निहित प्लगइन्स के एक सेट के माध्यम से करता है। Android मॉड्यूल में इन प्लगइन्स का उपयोग करने के लिए Android प्लगइन द्वारा अपनाए गए मॉडल और Java मॉडल के बीच अंतर की भरपाई के लिए अतिरिक्त सेटअप की आवश्यकता होगी।
gradle-static-analysis-plugin का उद्देश्य प्रदान करना है:
प्लगइन Java, Kotlin और Android प्रोजेक्ट्स के लिए विभिन्न स्थैतिक विश्लेषण उपकरणों का समर्थन करता है:
CheckstylePMDFindBugs [पदावनत] [Gradle 6.0 में हटा दिया गया]SpotBugsDetektAndroid LintKtLintकृपया ध्यान दें कि उपकरणों की उपलब्धता उस प्रोजेक्ट पर निर्भर करती है जिस पर प्लगइन लागू किया गया है। अधिक जानकारी के लिए कृपया समर्थित उपकरण पृष्ठ देखें।
सभी विचाराधीन उपकरणों के लिए, कृपया मुद्दे देखें।
Android प्रोजेक्ट्स एक Gradle मॉडल का उपयोग करते हैं जो Java मॉडल के साथ संगत नहीं है, जो अंतर्निहित स्थैतिक विश्लेषण उपकरण प्लगइन्स द्वारा समर्थित है। अपने Android प्रोजेक्ट में gradle-static-analysis-plugin लागू करने से यह सुनिश्चित होगा कि सभी आवश्यक कार्य बिना किसी अतिरिक्त परेशानी के बनाए और सही ढंग से कॉन्फ़िगर किए जाएं।
jCenter से प्लगइन को एक क्लासपाथ निर्भरता के रूप में लागू करें
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.novoda:gradle-static-analysis-plugin:1.2'
}
}
apply plugin: 'com.novoda.static-analysis'
या Gradle प्लगइन्स रिपॉजिटरी से:
plugins {
id 'com.novoda.static-analysis' version '1.2'
}
प्लगइन के लिए एक विशिष्ट कॉन्फ़िगरेशन इस प्रकार होगा:
staticAnalysis {
penalty {
maxErrors = 0
maxWarnings = 0
}
checkstyle { }
pmd { }
findbugs { }
spotbugs { }
detekt { }
lintOptions { }
}
यह सभी उपकरणों को उनकी डिफ़ॉल्ट सेटिंग्स के साथ सक्षम करेगा और evaluateViolations कार्य बनाएगा। ./gradlew evaluateViolations कार्य चलाने से सभी कॉन्फ़िगर किए गए उपकरण चलेंगे और रिपोर्ट को कंसोल पर प्रिंट करेगा। अधिक उन्नत कॉन्फ़िगरेशन के लिए, कृपया उन्नत उपयोग और समर्थित उपकरण पृष्ठ देखें।
दो नमूना Android प्रोजेक्ट उपलब्ध हैं, एक सामान्य ऐप से युक्त - यहाँ उपलब्ध - और दूसरा मल्टी-मॉड्यूल सेटअप से युक्त यहाँ उपलब्ध। दोनों नमूना प्रोजेक्ट Checkstyle, FindBugs, SpotBugs, PMD, Lint, Ktlint और Detekt की सुविधा वाला सेटअप प्रदर्शित करते हैं।
develop से स्नैपशॉट बिल्ड स्वचालित रूप से एक रिपॉजिटरी में तैनात किए जाते हैं जो JCenter के साथ सिंक नहीं होती है।
स्नैपशॉट बिल्ड का उपभोग करने के लिए एक अतिरिक्त maven रेपो निम्नानुसार जोड़ें:
repositories {
maven {
url 'https://dl.bintray.com/novoda-oss/snapshots/'
}
}
आप नवीनतम स्नैपशॉट संस्करण इस लिंक का अनुसरण करके पा सकते हैं।
यह परियोजना नियमित रूप से कई Novoda प्रोजेक्ट्स और अन्य बाहरी प्रोजेक्ट्स द्वारा बिना किसी ज्ञात गंभीर समस्या के उपयोग की जाती है।
भविष्य के सुधार और नए उपकरण एकीकरण रिपॉजिटरी के मुद्दा ट्रैकर पर पाए जा सकते हैं।