-
Notifications
You must be signed in to change notification settings - Fork 1.6k
/
Copy pathdependency-versions-caffeine-conventions.gradle.kts
46 lines (43 loc) · 1.42 KB
/
dependency-versions-caffeine-conventions.gradle.kts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask
import com.github.benmanes.gradle.versions.reporter.PlainTextReporter
plugins {
id("com.github.ben-manes.versions")
}
tasks.named<DependencyUpdatesTask>("dependencyUpdates").configure {
resolutionStrategy {
componentSelection {
all {
val stable = listOf("javax.json.bind", "org.jetbrains.kotlin", "org.osgi")
if ((candidate.group in stable) && isNonStable(candidate.version)) {
reject("Release candidate")
} else if ((candidate.module == "commons-io") && candidate.version.startsWith("2003")) {
reject("Bad release")
}
}
}
force(libs.guice)
force(libs.bundles.coherence.get())
}
outputFormatter {
val reporter = PlainTextReporter(project, revision, gradleReleaseChannel)
exceeded.dependencies.removeAll { dependency ->
if (dependency.group?.startsWith("org.ops4j") == true) {
current.dependencies += dependency
true
} else {
false
}
}
reporter.write(System.out, this)
}
}
fun isNonStable(version: String): Boolean {
val stableKeyword = listOf("RELEASE", "FINAL", "GA", "JRE").any {
version.uppercase().contains(it)
}
val unstableKeyword = listOf("PREVIEW").any {
version.uppercase().contains(it)
}
val regex = "^[0-9,.v-]+(-r)?$".toRegex()
return (!stableKeyword || unstableKeyword) && !regex.matches(version)
}