Je voulais trouver des dépendances inutilisées dans mon projet. Y a-t-il une fonctionnalité pour cela, comme dans maven?
En juin 2017 , ils ont sorti la
4.0.0 version
et ont renommé le nom du projet racine"gradle-lint-plugin"
en"nebula-lint-plugin"
. Ils ont également ajouté le support Android à la dépendance inutilisée .
En mai 2016, Gradle a mis en place un plug-in pour détecter et supprimer les dépendances indésirables.
Le plugin Gradle Lint est un outil de linter configurable et enfichable pour identifier et signaler les modèles de mauvaise utilisation ou de dépréciations dans les scripts Gradle et les fichiers associés.
Ce plugin a plusieurs règles. La règle de dépendance non utilisée en fait partie. Il a 3 caractéristiques spécifiques.
Pour appliquer la règle, ajoutez:
gradleLint.rules += 'unused-dependency'
Les détails de la règle de dépendance non utilisée sont donnés dans la dernière partie.
Pour appliquer le plugin de peluches:
buildscript { repositories { jcenter() } } plugins { id 'nebula.lint' version '0.30.2' }
Alternativement:
buildscript { repositories { jcenter() } dependencies { classpath 'com.netflix.nebula:gradle-lint-plugin:latest.release' } } apply plugin: 'nebula.lint'
Définissez les règles que vous souhaitez utiliser contre:
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 charpente dans un script init.gradle ou dans un script de dégradé inclus via le mécanisme Gradle Apply.
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 binarys compilés provenant des jeux de sources de votre projet à la recherche de références de classe, et fait correspondre ces références aux dépendances que vous avez déclarées dans votre bloc de dépendances .
1) Supprime les dépendances inutilisées
2) Favorise les dépendances transitives utilisées directement par votre code pour expliciter les dépendances de premier ordre
3) Reloge les dépendances à la configuration «correcte»
Pour votre aimable information, je veux partager sur les plugins précédents
Mais sa dernière version 1.0.3 est créée le 23 décembre 2014 . Après cela, il n’y a pas de mise à jour.
NB: Beaucoup de nos ingénieurs sont confus à propos de ce plugin car ils n’ont mis à jour que le numéro de version.
J’ai eu beaucoup de chance en utilisant le plug-in d’parsing de dépendance Gradle . Pour commencer, ajoutez les deux éléments suivants à votre script de compilation 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 que ceux-ci sont en place, effectuez gradle analyze
. S’il existe des dépendances inutilisées, vous obtenez un échec de génération qui affiche un résultat 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 qu’il n’y ait pas de dépendances inutilisées via une génération de 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
Le projet mentionné dans les réponses précédentes semble être mort. J’utilise l’ parsing des dépendances graduelles . L’installation 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
Les projets sur la plupart des réponses historiques sont morts, mais l’ parsing des dépendances graduelles semble être vivante au moment d’écrire ces lignes (le dernier engagement date d’il y a deux jours).
Ce n’est pas une fonctionnalité intégrée, et je ne connais pas de plug-in tiers (mais il y en a peut-être un).
Vous pouvez essayer com.github.nullstress.dependency-analysis plugin gragle
Créer 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éer un extrait de script pour un nouveau mécanisme d’incubation introduit dans Gradle 2.1:
plugins { id "com.github.nullstress.dependency-analysis" version "1.0.3" }
Il y a aussi un fil ( Y a-t-il un équivalent Gradle de “mvn dependency: analysis”? ) Dans le forum gradle à ce sujet.