मैं अपने प्रोजेक्ट में अप्रयुक्त निर्भरताओं को खोजना चाहता था। क्या ग्रैडल में इसके लिए एक विशेषता है, जैसे मावेन में?
मैं अपने प्रोजेक्ट में अप्रयुक्त निर्भरताओं को खोजना चाहता था। क्या ग्रैडल में इसके लिए एक विशेषता है, जैसे मावेन में?
जवाबों:
में जून, 2017 में, वे जारी किया है
4.0.0 version
और जड़ परियोजना का नाम बदल"gradle-lint-plugin"
लिए"nebula-lint-plugin"
। उन्होंने अप्रयुक्त-निर्भरता के लिए Android समर्थन भी जोड़ा है ।
में मई वर्ष 2016 Gradle लागू किया गया है Gradle फाहा प्लगइन खोजने और अवांछित निर्भरता को हटाने के लिए
ग्रैड लिंट प्लगइन ग्रैड लिपियों और संबंधित फाइलों में दुरुपयोग या अवक्षेपण के पैटर्न की पहचान करने और रिपोर्ट करने के लिए एक प्लग करने योग्य और विन्यास योग्य लिंटर उपकरण है।
इस प्लगइन के विभिन्न नियम हैं। अप्रयुक्त निर्भरता नियम उनमें से एक है। इसकी तीन विशिष्ट विशेषताएं हैं।
नियम लागू करने के लिए, जोड़ें:
gradleLint.rules += 'unused-dependency'
अप्रयुक्त निर्भरता नियम का विवरण अंतिम भाग में दिया गया है।
ग्रेड लिंट प्लगइन लागू करने के लिए:
buildscript { repositories { jcenter() } }
plugins {
id 'nebula.lint' version '0.30.2'
}
वैकल्पिक रूप से:
buildscript {
repositories { jcenter() }
dependencies {
classpath 'com.netflix.nebula:gradle-lint-plugin:latest.release'
}
}
apply plugin: 'nebula.lint'
परिभाषित करें कि आप किन नियमों के विरूद्ध ऋण देना चाहेंगे:
gradleLint.rules = ['all-dependency'] // Add as many rules here as you'd like
एक एंटरप्राइज़ बिल्ड के लिए, हम एक init.gradle स्क्रिप्ट या ग्रैडल स्क्रिप्ट में लिंट नियमों को परिभाषित करने की सलाह देते हैं जो ग्रैडल तंत्र के माध्यम से लागू होते हैं।
मल्टीमॉडल परियोजनाओं के लिए, हम एक allprojects
ब्लॉक में प्लगइन लगाने की सलाह देते हैं :
allprojects {
apply plugin: 'nebula.lint'
gradleLint.rules = ['all-dependency'] // Add as many rules here as you'd like
}
नियम लागू करने के लिए, जोड़ें:
gradleLint.rules += 'unused-dependency'
नियम आपके प्रोजेक्ट के स्रोत सेट से निकलने वाले संकलित बायनेरिज़ का निरीक्षण करता है जो वर्ग संदर्भों की तलाश करता है और उन निर्भरताओं के संदर्भों से मेल खाता है जिन्हें आपने अपनी निर्भरता ब्लॉक में घोषित किया है ।
आपकी तरह की जानकारी के लिए, मैं पिछले प्लगइन्स के बारे में साझा करना चाहता हूं
लेकिन इसका नवीनतम संस्करण 1.0.3 23 दिसंबर 2014 को बनाया गया है । उसके बाद कोई अपडेट नहीं है।
NB: हमारे कई इंजीनियर इस प्लगइन के बारे में भ्रमित हो रहे हैं क्योंकि उन्होंने केवल संस्करण संख्या को अपडेट किया है, और कुछ नहीं।
implementation
और api
), और भी बदतर है, वर्ष में अमान्य हो चुके लोगों के लिए नए लोगों को से बदल रहा है की सिफारिश (जैसे: compile
, testCompile
, आदि)।
पहले के उत्तरों में वर्णित परियोजना मृत प्रतीत होती है। मैं वर्गीकृत-निर्भरता-विश्लेषण का उपयोग करता हूं । सेटअप सरल है:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'ca.cutterslade.gradle:gradle-dependency-analyze:1.0.3'
}
}
apply plugin: 'ca.cutterslade.analyze'
फिर करो:
$ gradle analyzeDependencies
ग्रैड डिपेंडेंसी एनालिसिस प्लगिन का उपयोग करने के लिए मुझे बहुत कुछ मिला है । इसके साथ शुरुआत करने के लिए, अपने ग्रेड बिल्ड स्क्रिप्ट में निम्नलिखित दो चीजें जोड़ें।
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "com.github.nullstress:DependencyAnalysisPlugin:1.0.3"
}
}
तथा
apply plugin: "dependencyAnalysis"
एक बार जब वे जगह में हों, तो दौड़ें gradle analyze
। यदि अप्रयुक्त निर्भरताएँ हैं, तो आपको एक बिल्ड विफलता मिलेगी जो नीचे दिए गए पाठ के समान आउटपुट दिखाती है, साथ ही अप्रयुक्त निर्भरताओं की सूची (घोषित और सकर्मक दोनों)। बिल्ड विफलता वास्तव में आसान है यदि आप यह लागू करना चाहते हैं कि सीआई बिल्ड के माध्यम से अप्रयुक्त निर्भरताएं नहीं होनी चाहिए।
:foo:analyze FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':foo:analyze'.
> The project has unused declared artifacts
मैंने अभी इस बारे में सीखा: https://plugins.gradle.org/plugin/com.autonomousapps.d dependency-alalysis
लग रहा है कि यह सक्रिय विकास के तहत है, लेकिन मैंने अभी तक इसका परीक्षण नहीं किया है।
संपादित करें: वास्तव में यह बहुत बढ़िया है, यह बहुत सारी सलाह देता है (जैसे कि एपि बनाम कार्यान्वयन का उपयोग करना है)
संपादक का नोट: यह उत्तर पुराना है। कृपया शीर्ष उत्तर देखें ।
आप com.github.nullstress.dependency-analysis ग्रैडल प्लगइन की कोशिश कर सकते हैं
सभी ग्रेड संस्करण में उपयोग के लिए स्क्रिप्ट स्निपेट बनाएं:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "com.github.nullstress:DependencyAnalysisPlugin:1.0.3"
}
}
apply plugin: "com.github.nullstress.dependency-analysis"
ग्रेड 2.1 में पेश किए गए नए, ऊष्मायन, प्लगइन तंत्र के लिए स्क्रिप्ट स्निपेट बनाएं:
plugins {
id "com.github.nullstress.dependency-analysis" version "1.0.3"
}
इसके अलावा, इस बारे में ग्रैडल फोरम में एक धागा है ( "मावन निर्भरता: विश्लेषण" के बराबर ग्रैडल है? )।
अधिकांश ऐतिहासिक उत्तरों पर परियोजनाएं मृत हैं, लेकिन 2016-05-30 तक ग्रेडेल -निर्भरता-विश्लेषण जीवित प्रतीत होता है।