Я хотів знайти невикористані залежності у своєму проекті. Чи є для цього особливість у Gradle, як у Мейвіні?
Я хотів знайти невикористані залежності у своєму проекті. Чи є для цього особливість у Gradle, як у Мейвіні?
Відповіді:
У червні 2017 року вони випустили
4.0.0 version
і перейменували ім'я кореневого проекту"gradle-lint-plugin"
на"nebula-lint-plugin"
. Вони також додали підтримку Android до невикористаної залежності .
У травні 2016 року Gradle реалізував плагін Lint lint для пошуку та усунення небажаної залежності
Плагін Gradle Lint - це підключається та настроюється лінійний інструмент для ідентифікації та звітування про закономірності нецільового використання або припинення роботи у сценаріях Gradle та пов'язаних з ними файлах.
Цей плагін має різні правила. Правило невикористаної залежності є одним із них. Він має три специфічні характеристики.
Щоб застосувати правило, додайте:
gradleLint.rules += 'unused-dependency'
Деталі правила невикористаної залежності залежать від останньої частини.
Щоб застосувати плагін 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
Для побудови підприємства ми рекомендуємо визначити правила lint у скрипті init.gradle або в скрипті Gradle, який включений через Gradle, застосовувати з механізму.
Для мультимодульних проектів рекомендуємо застосувати плагін у allprojects
блоці:
allprojects {
apply plugin: 'nebula.lint'
gradleLint.rules = ['all-dependency'] // Add as many rules here as you'd like
}
Щоб застосувати правило, додайте:
gradleLint.rules += 'unused-dependency'
Правило перевіряє складені бінарні файли, що виходять із наборів джерел вашого проекту, шукаючи посилання на клас та відповідає цим посиланням на залежності, які ви оголосили у своєму блоці залежностей .
Для вашої доброї інформації я хочу поділитися про попередні плагіни
Але його остання версія 1.0.3 створена 23 грудня 2014 року . Після цього оновлення не відбувається.
NB: Багато наших інженерів плутають цей плагін, оскільки вони оновлювали лише номер версії, більше нічого.
implementation
а api
), і навіть гірше, рекомендує змінити від нових до старих застарілих одиниць (наприклад: compile
, testCompile
і т.д.).
Проект, згаданий у попередніх відповідях, здається, мертвий. Я використовую аналіз на залежність градусів . Установка проста:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'ca.cutterslade.gradle:gradle-dependency-analyze:1.0.3'
}
}
apply plugin: 'ca.cutterslade.analyze'
Потім зробіть:
$ gradle analyzeDependencies
Мені пощастило користуватися плагіном аналізу залежності Gradle . Щоб розпочати роботу, додайте наступні дві речі до сценарію збирання Gradle.
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
Щойно я дізнався про це: https://plugins.gradle.org/plugin/com.autonomousapps.dependency-analysis
З вигляду він знаходиться в активному розвитку, але я ще не перевіряв його.
Редагувати: насправді це досить приголомшливо, він дає багато порад (наприклад, чи використовувати api проти реалізації)
Примітка редактора: Ця відповідь застаріла. Будь ласка, дивіться верхню відповідь .
Ви можете спробувати плагін com.github.nullstress.dependence-analiza Gradle
Створіть фрагмент сценарію для використання у всіх версіях 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 є нитка ( чи є еквівалент Gradle "mvn залежність: аналіз"? ).
Проекти на більшість історичних відповідей мертві, але, здається, аналіз залежностей від ступеня є живим станом на 30.05.2016.