Nebula Gradlelint with mutli-project build reports too much with spring dependency management plugin

Viewed 730

I have a multi-module project using Java, Gradle and spring boot. In order to figure out whether I have any unused dependencies that I can cleanup I tried to use the Nebula Gradle Lint Plugin to find unused or undeclared dependencies.

I try to it as recommended in the documentation by applying the plugin in the allProjects block.

plugins {
    id "nebula.lint" version "16.17.0"
    id "org.jetbrains.kotlin.jvm" version "$kotlin_version"
    id "org.jetbrains.kotlin.plugin.spring" version "$kotlin_version"
    id "org.jetbrains.kotlin.plugin.jpa" version "$kotlin_version"
}

allProjects {
    apply plugin: "nebula.lint"
    gradleLint.alwaysRun = false
    gradleLint.rules = ['all-dependency', 'unused-dependency'] 
}

When I run this configuration I get > 1000 warnings. Many of them being

this dependency should be removed since its artifact is empty (no auto-fix available)

or

one or more classes in XXX (e.g: org.springframework:spring-aop:5.3.3) are required by your code directly (no auto-fix available)

Which looks to me as if this gradle lint plugin can not properly handle projects that also have the spring boot dependency plugin and uses starter dependencies.

Am I doing something wrong here or is there another gradle linter, that can help me with finding unused dependencies even if I have spring's dependency management plugin enabled?

0 Answers
Related