Quería encontrar dependencias no utilizadas en mi proyecto. ¿Hay alguna característica para esto en Gradle, como en Maven?
Quería encontrar dependencias no utilizadas en mi proyecto. ¿Hay alguna característica para esto en Gradle, como en Maven?
Respuestas:
En junio de 2017 , lanzaron
4.0.0 version
y cambiaron el nombre del proyecto raíz"gradle-lint-plugin"
a"nebula-lint-plugin"
. También han agregado compatibilidad con Android a la dependencia no utilizada .
En mayo de 2016, Gradle implementó el complemento Gradle lint para encontrar y eliminar dependencias no deseadas
El complemento Gradle Lint es una herramienta de interfaz configurable y conectable para identificar e informar sobre patrones de mal uso o desaprobación en los scripts de Gradle y archivos relacionados.
Este complemento tiene varias reglas. La regla de dependencia no utilizada es una de ellas. Tiene tres características específicas.
Para aplicar la regla, agregue:
gradleLint.rules += 'unused-dependency'
Los detalles de la regla de dependencia no utilizada se dan en la última parte.
Para aplicar el complemento Gradle lint:
buildscript { repositories { jcenter() } }
plugins {
id 'nebula.lint' version '0.30.2'
}
Alternativamente:
buildscript {
repositories { jcenter() }
dependencies {
classpath 'com.netflix.nebula:gradle-lint-plugin:latest.release'
}
}
apply plugin: 'nebula.lint'
Defina contra qué reglas le gustaría usar pelusa:
gradleLint.rules = ['all-dependency'] // Add as many rules here as you'd like
Para una compilación empresarial, recomendamos definir las reglas de pelusa en un script init.gradle o en un script Gradle que se incluye a través del mecanismo de aplicación Gradle.
Para proyectos multimódulo, recomendamos aplicar el complemento en un allprojects
bloque:
allprojects {
apply plugin: 'nebula.lint'
gradleLint.rules = ['all-dependency'] // Add as many rules here as you'd like
}
Para aplicar la regla, agregue:
gradleLint.rules += 'unused-dependency'
La regla inspecciona los archivos binarios compilados que emanan de los conjuntos fuente de su proyecto en busca de referencias de clase y hace coincidir esas referencias con las dependencias que ha declarado en su bloque de dependencias .
Para su amable información, quiero compartir sobre complementos anteriores
Pero su última versión 1.0.3 se creó el 23 de diciembre de 2014 . Después de eso no hay actualizaciones.
NB: Muchos de nuestros ingenieros están confundidos acerca de este complemento ya que actualizaron solo el número de versión, nada más.
implementation
e api
), y peor aún, recomienda el cambio de los nuevos a los viejos en desuso (por ejemplo: compile
, testCompile
, etc.).
El proyecto mencionado en las respuestas anteriores parece estar muerto. Yo uso gradle-dependency-analyse . La configuración es simple:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'ca.cutterslade.gradle:gradle-dependency-analyze:1.0.3'
}
}
apply plugin: 'ca.cutterslade.analyze'
Entonces hazlo:
$ gradle analyzeDependencies
He tenido mucha suerte con el complemento de análisis de dependencia de Gradle . Para comenzar, agregue las siguientes dos cosas a su script de compilación de Gradle.
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "com.github.nullstress:DependencyAnalysisPlugin:1.0.3"
}
}
y
apply plugin: "dependencyAnalysis"
Una vez que estén en su lugar, corre gradle analyze
. Si hay dependencias no utilizadas, obtendrá un error de compilación que muestra una salida similar al texto a continuación, además de una lista de las dependencias no utilizadas (declaradas y transitivas). El error de compilación es realmente útil si desea exigir que no haya dependencias no utilizadas a través de una compilación 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
Acabo de enterarme de este: https://plugins.gradle.org/plugin/com.autonomousapps.dependency-analysis
Por lo que parece, está en desarrollo activo, pero aún no lo he probado.
Editar: en realidad es bastante impresionante, proporciona muchos consejos (por ejemplo, si se debe usar api o implementación)
Nota del editor: esta respuesta no está actualizada. Por favor vea la respuesta superior .
Puede probar el complemento Gradle com.github.nullstress.dependency-analysis
Fragmento de script de compilación para usar en todas las versiones de Gradle:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "com.github.nullstress:DependencyAnalysisPlugin:1.0.3"
}
}
apply plugin: "com.github.nullstress.dependency-analysis"
Cree un fragmento de secuencia de comandos para el nuevo mecanismo de plugin de incubación introducido en Gradle 2.1:
plugins {
id "com.github.nullstress.dependency-analysis" version "1.0.3"
}
Además, hay un hilo ( ¿Hay un equivalente de Gradle de "dependencia mvn: analizar"? ) En el foro de Gradle sobre esto.
Los proyectos en la mayoría de las respuestas históricas están muertos, pero el análisis de dependencia de Gradle parece estar vivo a partir del 30/05/2016.