Je voulais trouver des dépendances inutilisées dans mon projet. Y a-t-il une fonctionnalité pour cela dans Gradle comme dans Maven?
En juin 2017 , ils ont publié le
4.0.0 version
et nom du projet racine renommé"gradle-lint-plugin"
à"nebula-lint-plugin"
. Ils ont également ajouté la prise en charge d'Android à la dépendance non utilisée .
En Mai 2016 Gradle a mis en œuvre plugin Gradle Lint pour rechercher et supprimer les dépendances indésirables.
Le plug-in Gradle Lint est un outil linter configurable et plug-in permettant d'identifier et de générer des rapports sur les tendances en matière de mauvaise utilisation ou de dépréciation des scripts Gradle et des fichiers associés.
Ce plugin a différentes règles. règle de dépendance non utilisée est l'un d'entre eux. Il a 3 caractéristiques spécifiques.
Pour appliquer la règle, ajoutez:
gradleLint.rules += 'unused-dependency'
Les détails de règle de dépendance non utilisée sont donnés dans la dernière partie.
Pour appliquer le plugin Gradle Lint:
buildscript { repositories { jcenter() } }
plugins {
id 'nebula.lint' version '0.30.2'
}
Sinon:
buildscript {
repositories { jcenter() }
dependencies {
classpath 'com.netflix.nebula:gradle-lint-plugin:latest.release'
}
}
apply plugin: 'nebula.lint'
Définissez les règles contre lesquelles vous souhaitez agir:
gradleLint.rules = ['all-dependency'] // add as many rules here as you'd like
Pour une version d'entreprise, nous vous recommandons de définir les règles de lint dans un script init.gradle ou dans un script de dégradé inclus via le mécanisme apply de Gradle.
Pour les projets multimodules, nous vous recommandons d’appliquer le plugin dans un bloc allprojects:
allprojects {
apply plugin: 'nebula.lint'
gradleLint.rules = ['all-dependency'] // add as many rules here as you'd like
}
Pour appliquer la règle, ajoutez:
gradleLint.rules += 'unused-dependency'
La règle inspecte les fichiers binaires compilés émanant de jeux de sources de votre projet et recherchant des références de classe. Elle fait correspondre ces références aux dépendances que vous avez déclarées dans votre bloc dépendances .
1) Supprime les dépendances inutilisées
2) Promeut les dépendances transitives utilisées directement par votre code en dépendances de premier ordre explicites
3) Déplace les dépendances vers la configuration "correcte"
Pour votre gentille information, je veux partager sur les plugins précédents
Mais , sa dernière version 1.0.3 a été créée le 23 décembre 2014 . Après cela, il n'y a pas de mise à jour.
N.B: Beaucoup de nos ingénieurs sont confus à propos de ce plugin car ils n'ont mis à jour que le numéro de version et rien d'autre.
J'ai eu beaucoup de chance avec le Gradle Dependency Analysis Plugin . Pour commencer, ajoutez les deux éléments suivants à votre script de génération Gradle.
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "com.github.nullstress:DependencyAnalysisPlugin:1.0.3"
}
}
et
apply plugin: "dependencyAnalysis"
Une fois ceux-ci en place, lancez gradle analyze
. S'il existe des dépendances inutilisées, vous obtiendrez un échec de la construction affichant une sortie similaire au texte ci-dessous, ainsi qu'une liste des dépendances inutilisées (déclarées et transitives). L'échec de la construction est vraiment pratique si vous voulez imposer l'absence de dépendances inutilisées via une génération d'EC.
:foo:analyze FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':foo:analyze'.
> The project has unused declared artifacts
Le projet mentionné dans les réponses précédentes semble être mort. J'utilise gradle-dependency-analysis . La configuration est simple:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'ca.cutterslade.gradle:gradle-dependency-analyze:1.0.3'
}
}
apply plugin: 'ca.cutterslade.analyze'
Alors fais:
$ gradle analyzeDependencies
Note de la rédaction: cette réponse est obsolète, veuillez vous reporter à la réponse du haut.
Vous pouvez essayer com.github.nullstress.dependency-analysis plugin gragle
Créez un extrait de script à utiliser dans toutes les versions de Gradle:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "com.github.nullstress:DependencyAnalysisPlugin:1.0.3"
}
}
apply plugin: "com.github.nullstress.dependency-analysis"
Créez un extrait de script pour le nouveau mécanisme de plug-in en incubation introduit dans Gradle 2.1:
plugins {
id "com.github.nullstress.dependency-analysis" version "1.0.3"
}
En outre, il existe un fil ( Existe-t-il un équivalent Gradle de "dépendance mvn: analyser"? ) dans le forum Gradle à ce sujet.
Les projets sur la plupart des réponses historiques sont morts, mais gradle-dependency-analysis semble être en vie au moment de l'écriture de cet article (le dernier commit remonte à deux jours auparavant).