Skip to content

Commit ff1cfc6

Browse files
committed
Refine the consistency check task for defined versions
1 parent 4280e8c commit ff1cfc6

File tree

2 files changed

+17
-10
lines changed

2 files changed

+17
-10
lines changed

gradle/plugins/src/main/kotlin/org/example/gradle/tasks/JavaVersionConsistencyCheck.kt

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import org.gradle.api.DefaultTask
44
import org.gradle.api.artifacts.component.ModuleComponentIdentifier
55
import org.gradle.api.artifacts.result.ResolvedComponentResult
66
import org.gradle.api.file.RegularFileProperty
7+
import org.gradle.api.provider.ListProperty
78
import org.gradle.api.provider.MapProperty
89
import org.gradle.api.provider.SetProperty
910
import org.gradle.api.tasks.Input
@@ -16,35 +17,35 @@ abstract class JavaVersionConsistencyCheck : DefaultTask() {
1617

1718
@get:Input abstract val aggregatedClasspath: SetProperty<ResolvedComponentResult>
1819

20+
@get:Input abstract val excludes: ListProperty<String>
21+
1922
@get:OutputFile abstract val reportFile: RegularFileProperty
2023

2124
@TaskAction
2225
fun compare() {
23-
var potentiallyUnusedVersion = ""
24-
var wrongVersions = ""
26+
var issues = ""
2527
definedVersions.get().forEach { (id, version) ->
2628
val resolved =
2729
aggregatedClasspath.get().find {
2830
val resolvedId = it.id
2931
resolvedId is ModuleComponentIdentifier && resolvedId.moduleIdentifier.toString() == id
3032
}
3133
if (resolved == null) {
32-
potentiallyUnusedVersion += "Not used in production code: $id:$version\n"
34+
if (!excludes.get().contains(id)) {
35+
issues += "Not used: $id:$version\n"
36+
}
3337
} else {
3438
val resolvedVersion = resolved.moduleVersion?.version
3539
if (resolvedVersion != version) {
36-
wrongVersions += "Wrong version: $id (declared=$version; used=$resolvedVersion)\n"
40+
issues += "Wrong version: $id (declared=$version; used=$resolvedVersion)\n"
3741
}
3842
}
3943
}
4044

41-
reportFile.get().asFile.writeText(potentiallyUnusedVersion + wrongVersions)
45+
reportFile.get().asFile.writeText(issues)
4246

43-
if (!potentiallyUnusedVersion.isEmpty()) {
44-
println(potentiallyUnusedVersion)
45-
}
46-
if (!wrongVersions.isEmpty()) {
47-
throw RuntimeException(wrongVersions)
47+
if (!issues.isEmpty()) {
48+
throw RuntimeException(issues)
4849
}
4950
}
5051
}

gradle/versions/build.gradle.kts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,9 @@ dependencies.constraints {
1515
api(libs.resteasy.core) { version { reject("[5.0.0.Final,)") } }
1616
api(libs.solr.solrj) { version { reject("[8.0.0,)") } } // API changes in 8 require production code changes
1717
}
18+
19+
tasks.checkVersionConsistency {
20+
excludes.add("org.junit.jupiter:junit-jupiter-api") // testing only
21+
excludes.add("org.assertj:assertj-core") // testing only
22+
excludes.add("com.google.code.findbugs:jsr305") // test fixtures only
23+
}

0 commit comments

Comments
 (0)