私のプロジェクトで未使用の依存関係を見つけたかった。 Mavenのようなgradleでこれに何か機能はありますか?
2017年6月では、
4.0.0 version
および名前が変更されたルートプロジェクト名"gradle-lint-plugin"
から"nebula-lint-plugin"
。また、nused-dependencyへのAndroidサポートも追加されました。
May、2016 Gradleは、不要な依存関係を見つけて削除するために gradle lint plugin を実装しました
Gradle Lintプラグインは、Gradleスクリプトおよび関連ファイルの誤用または非推奨のパターンを識別および報告するための、プラグイン可能で構成可能なリンターツールです。
このプラグインにはさまざまなルールがあります。 未使用の依存関係ルール はその1つです。 3つの特定の特性があります。
ルールを適用するには、次を追加します。
gradleLint.rules += 'unused-dependency'
nused Dependency Rule の詳細は、最後の部分に記載されています。
gradle lintプラグインを適用するには:
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スクリプトまたはGradle apply fromメカニズムを介して含まれているgradleスクリプトでlintルールを定義することをお勧めします。
マルチモジュールプロジェクトの場合は、allprojectsブロックでプラグインを適用することをお勧めします。
allprojects {
apply plugin: 'nebula.lint'
gradleLint.rules = ['all-dependency'] // add as many rules here as you'd like
}
ルールを適用するには、次を追加します。
gradleLint.rules += 'unused-dependency'
このルールは、プロジェクトの source sets から発生するコンパイル済みバイナリを検査し、クラス参照を探し、 dependencies ブロックで宣言した依存関係への参照を照合します。
1)未使用の依存関係を削除
2)コードで直接使用される推移的な依存関係を明示的な1次依存関係に昇格します
)依存関係を「正しい」構成に再配置
あなたの親切な情報については、以前のプラグインについて共有したい
しかし、最新バージョン1.0.3は2014年12月23日作成です。その後、更新はありません。
N.B:私たちのエンジニアの多くは このプラグイン について混乱しており、バージョン番号のみを更新しました。
Gradle Dependency Analysis Plugin を使用して、多くの運がありました。開始するには、Gradleビルドスクリプトに次の2つの項目を追加します。
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "com.github.nullstress:DependencyAnalysisPlugin:1.0.3"
}
}
そして
apply plugin: "dependencyAnalysis"
それらを配置したら、gradle analyze
を実行します。未使用の依存関係がある場合、以下のテキストに類似した出力に加えて、未使用の依存関係のリスト(宣言型と推移型の両方)を示すビルドエラーが発生します。 CIビルドを介した未使用の依存関係がないことを強制する場合、ビルドの失敗は本当に便利です。
:foo:analyze FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':foo:analyze'.
> The project has unused declared artifacts
以前の回答で言及されたプロジェクトは死んでいるようです。 gradle-dependency-analyze を使用します。セットアップは簡単です。
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'ca.cutterslade.gradle:gradle-dependency-analyze:1.0.3'
}
}
apply plugin: 'ca.cutterslade.analyze'
それから:
$ gradle analyzeDependencies
編集者注:この回答は古くなっています。上の回答をご覧ください。
com.github.nullstress.dependency-analysis gragle pluginを試すことができます
すべてのGradleバージョンで使用するスクリプトスニペットを構築します:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "com.github.nullstress:DependencyAnalysisPlugin:1.0.3"
}
}
apply plugin: "com.github.nullstress.dependency-analysis"
Gradle 2.1で導入された新しい、インキュベーション中のプラグインメカニズム用のスクリプトスニペットのビルド:
plugins {
id "com.github.nullstress.dependency-analysis" version "1.0.3"
}
また、これに関するgradleフォーラムにはスレッドがあります( "mvndependency:analyze"に相当するGradleはありますか? )。
ほとんどの歴史的な答えのプロジェクトは死んでいますが、この執筆時点で gradle-dependency-analyze は生きているようです(最後のコミットは2日前です)。