-
Notifications
You must be signed in to change notification settings - Fork 774
/
build.gradle.kts
79 lines (72 loc) · 2.86 KB
/
build.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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
plugins {
`kotlin-dsl`
// When updating, update below in dependencies too
id("com.diffplug.spotless") version "6.25.0"
}
if (!hasLauncherForJavaVersion(17)) {
throw GradleException(
"JDK 17 is required to build and gradle was unable to detect it on the system. " +
"Please install it and see https://docs.gradle.org/current/userguide/toolchains.html#sec:auto_detection " +
"for details on how gradle detects java toolchains."
)
}
fun hasLauncherForJavaVersion(version: Int): Boolean {
return try {
javaToolchains.launcherFor { languageVersion = JavaLanguageVersion.of(version) }.get()
true
} catch (e: Exception) {
false
}
}
spotless {
kotlinGradle {
ktlint().editorConfigOverride(mapOf(
"indent_size" to "2",
"continuation_indent_size" to "2",
"max_line_length" to "160",
"insert_final_newline" to "true",
"ktlint_standard_no-wildcard-imports" to "disabled",
// ktlint does not break up long lines, it just fails on them
"ktlint_standard_max-line-length" to "disabled",
// ktlint makes it *very* hard to locate where this actually happened
"ktlint_standard_trailing-comma-on-call-site" to "disabled",
// depends on ktlint_standard_wrapping
"ktlint_standard_trailing-comma-on-declaration-site" to "disabled",
// also very hard to find out where this happens
"ktlint_standard_wrapping" to "disabled"
))
target("**/*.gradle.kts")
}
}
repositories {
mavenCentral()
gradlePluginPortal()
mavenLocal()
}
dependencies {
implementation(enforcedPlatform("com.squareup.wire:wire-bom:4.9.9"))
implementation("com.google.auto.value:auto-value-annotations:1.11.0")
// When updating, update above in plugins too
implementation("com.diffplug.spotless:spotless-plugin-gradle:6.25.0")
// Needed for japicmp but not automatically brought in for some reason.
implementation("com.google.guava:guava:33.2.1-jre")
implementation("com.squareup:javapoet:1.13.0")
implementation("com.squareup.wire:wire-compiler")
implementation("com.squareup.wire:wire-gradle-plugin")
implementation("gradle.plugin.com.google.protobuf:protobuf-gradle-plugin:0.8.18")
implementation("gradle.plugin.io.morethan.jmhreport:gradle-jmh-report:0.9.6")
implementation("me.champeau.gradle:japicmp-gradle-plugin:0.4.2")
implementation("me.champeau.jmh:jmh-gradle-plugin:0.7.2")
implementation("net.ltgt.gradle:gradle-errorprone-plugin:4.0.0")
implementation("net.ltgt.gradle:gradle-nullaway-plugin:2.0.0")
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:2.0.0")
implementation("org.owasp:dependency-check-gradle:9.2.0")
implementation("ru.vyarus:gradle-animalsniffer-plugin:1.7.1")
}
// We can't apply conventions to this build so include important ones such as the Java compilation
// target.
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(17))
}
}