Projemde kullanılmayan bağımlılıklar bulmak istedim. Maven'deki gibi Gradle'da bunun için bir özellik var mı?
Projemde kullanılmayan bağımlılıklar bulmak istedim. Maven'deki gibi Gradle'da bunun için bir özellik var mı?
Yanıtlar:
In Haziran 2017 , bunlar yayımlandı
4.0.0 version
ve kök proje adı değiştirildi"gradle-lint-plugin"
için"nebula-lint-plugin"
. Ayrıca kullanılmayan bağımlılığa Android desteği de eklediler .
In Mayıs 2016 Gradle uygulamıştır Gradle tiftik eklentisi istenmeyen bağımlılık bulma ve çıkarma için
Gradle Lint eklentisi, Gradle komut dosyalarında ve ilgili dosyalarda kötüye kullanım veya kullanımdan kaldırma modellerini tanımlamak ve raporlamak için takılabilir ve yapılandırılabilir bir linter aracıdır.
Bu eklentinin çeşitli kuralları vardır. Kullanılmayan Bağımlılık Kuralı bunlardan biridir. Üç spesifik özelliğe sahiptir.
Kuralı uygulamak için şunu ekleyin:
gradleLint.rules += 'unused-dependency'
Kullanılmayan Bağımlılık Kuralının detayları son bölümde verilmiştir.
Gradle lint eklentisini uygulamak için:
buildscript { repositories { jcenter() } }
plugins {
id 'nebula.lint' version '0.30.2'
}
Alternatif:
buildscript {
repositories { jcenter() }
dependencies {
classpath 'com.netflix.nebula:gradle-lint-plugin:latest.release'
}
}
apply plugin: 'nebula.lint'
Hangi kurallara karşı çıkmak istediğinizi tanımlayın:
gradleLint.rules = ['all-dependency'] // Add as many rules here as you'd like
Bir kurumsal yapı için, lint kurallarını bir init.gradle komut dosyasında veya Gradle apply from mekanizmasıyla dahil edilen bir Gradle komut dosyasında tanımlamanızı öneririz.
Çoklu modül projeleri için, eklentiyi bir allprojects
blokta uygulamanızı öneririz :
allprojects {
apply plugin: 'nebula.lint'
gradleLint.rules = ['all-dependency'] // Add as many rules here as you'd like
}
Kuralı uygulamak için şunu ekleyin:
gradleLint.rules += 'unused-dependency'
Kural, projenizin kaynak kümelerinden çıkan, sınıf referanslarını arayan derlenmiş ikili dosyaları inceler ve bu referansları bağımlılıklar bloğunuzda beyan ettiğiniz bağımlılıklarla eşleştirir .
Nazik bilgileriniz için önceki eklentiler hakkında paylaşmak istiyorum
Ancak en son sürümü 1.0.3 23 Aralık 2014'te oluşturuldu . Bundan sonra herhangi bir güncelleme yok.
Not: Mühendislerimizin çoğu, yalnızca sürüm numarasını güncelledikleri için bu eklenti konusunda kafası karışık .
implementation
ve api
), ve daha da kötüsü, eski kaldırılmış olanlara yenilerini değişen önerir (örn: compile
, testCompile
vs.).
Önceki cevaplarda bahsedilen proje bitmiş gibi görünüyor. Kullandığım gradle-bağımlılık-analiz . Kurulum basittir:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'ca.cutterslade.gradle:gradle-dependency-analyze:1.0.3'
}
}
apply plugin: 'ca.cutterslade.analyze'
O zaman yap:
$ gradle analyzeDependencies
Gradle Dependency Analysis Plugin'i kullanırken çok şansım oldu . Başlamak için aşağıdaki iki şeyi Gradle oluşturma komut dosyanıza ekleyin.
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "com.github.nullstress:DependencyAnalysisPlugin:1.0.3"
}
}
ve
apply plugin: "dependencyAnalysis"
Bunlar yerleştirildikten sonra koşun gradle analyze
. Kullanılmayan bağımlılıklar varsa, aşağıdaki metne benzer çıktıyı ve ayrıca kullanılmayan bağımlılıkların bir listesini (hem bildirilen hem de geçişli) gösteren bir yapı hatası alırsınız. Bir CI derlemesi aracılığıyla kullanılmayan bağımlılık olmamasını zorunlu kılmak istiyorsanız derleme hatası gerçekten kullanışlıdır.
:foo:analyze FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':foo:analyze'.
> The project has unused declared artifacts
Bunu yeni öğrendim: https://plugins.gradle.org/plugin/com.autonomousapps.dependency-analysis
Görünüşe göre aktif geliştirme aşamasında, ancak henüz test etmedim.
Düzenleme: Aslında oldukça harika, birçok tavsiye sağlıyor (örneğin api'ye karşı uygulama kullanılıp kullanılmayacağı)
Editörün Notu: Bu yanıt güncel değil. Lütfen en üst cevaba bakın .
Com.github.nullstress.dependency-analysis Gradle eklentisini deneyebilirsiniz
Tüm Gradle sürümlerinde kullanmak için komut dosyası snippet'i oluşturun:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "com.github.nullstress:DependencyAnalysisPlugin:1.0.3"
}
}
apply plugin: "com.github.nullstress.dependency-analysis"
Gradle 2.1'de sunulan yeni, kuluçka, eklenti mekanizması için komut dosyası snippet'i oluşturun:
plugins {
id "com.github.nullstress.dependency-analysis" version "1.0.3"
}
Ayrıca, Gradle forumunda bununla ilgili bir başlık ("mvn bağımlılığı: analiz et" in Gradle eşdeğeri var mı? ).
Çoğu tarihsel yanıtla ilgili projeler öldü, ancak kademeli bağımlılık analizi 2016-05-30 itibarıyla canlı görünüyor.