diff --git a/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/internal/DefaultDependencyFilter.kt b/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/internal/DefaultDependencyFilter.kt index 0333c869a..4033738dd 100644 --- a/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/internal/DefaultDependencyFilter.kt +++ b/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/internal/DefaultDependencyFilter.kt @@ -12,10 +12,10 @@ internal class DefaultDependencyFilter( includedDependencies: MutableSet, excludedDependencies: MutableSet, ) { - dependencies.forEach { - val added = if (it.isIncluded()) includedDependencies.add(it) else excludedDependencies.add(it) + dependencies.forEach { dep -> + val added = if (dep.isIncluded()) includedDependencies.add(dep) else excludedDependencies.add(dep) if (added) { - resolve(it.children, includedDependencies, excludedDependencies) + resolve(dep.children, includedDependencies, excludedDependencies) } } } diff --git a/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/internal/MinimizeDependencyFilter.kt b/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/internal/MinimizeDependencyFilter.kt index a38ac71f0..0ee204f86 100644 --- a/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/internal/MinimizeDependencyFilter.kt +++ b/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/internal/MinimizeDependencyFilter.kt @@ -12,22 +12,15 @@ internal class MinimizeDependencyFilter( includedDependencies: MutableSet, excludedDependencies: MutableSet, ) { - dependencies.forEach { - val added = if (it.isIncluded() && !isParentExcluded(excludedDependencies, it)) { - includedDependencies.add(it) + dependencies.forEach { dep -> + val added = if (dep.isIncluded() && !excludedDependencies.any { it in dep.parents }) { + includedDependencies.add(dep) } else { - excludedDependencies.add(it) + excludedDependencies.add(dep) } if (added) { - resolve(it.children, includedDependencies, excludedDependencies) + resolve(dep.children, includedDependencies, excludedDependencies) } } } - - private fun isParentExcluded( - excludedDependencies: Set, - dependency: ResolvedDependency, - ): Boolean { - return excludedDependencies.any { it in dependency.parents } - } } diff --git a/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/tasks/DependencyFilter.kt b/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/tasks/DependencyFilter.kt index 75a1a3529..43f4677c6 100644 --- a/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/tasks/DependencyFilter.kt +++ b/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/tasks/DependencyFilter.kt @@ -56,11 +56,15 @@ public interface DependencyFilter : Serializable { ) override fun resolve(configuration: Configuration): FileCollection { - val included = mutableSetOf() - val excluded = mutableSetOf() - resolve(configuration.resolvedConfiguration.firstLevelModuleDependencies, included, excluded) + val includes = mutableSetOf() + val excludes = mutableSetOf() + resolve( + dependencies = configuration.resolvedConfiguration.firstLevelModuleDependencies, + includedDependencies = includes, + excludedDependencies = excludes, + ) return project.files(configuration.files) - - project.files(excluded.flatMap { it.moduleArtifacts.map(ResolvedArtifact::getFile) }) + project.files(excludes.flatMap { it.moduleArtifacts.map(ResolvedArtifact::getFile) }) } override fun resolve(configurations: Collection): FileCollection {