-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle.kts
96 lines (88 loc) · 3.02 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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
kotlin("jvm") version "1.5.21"
id("com.gorylenko.gradle-git-properties") version "2.3.1"
id("org.jlleitschuh.gradle.ktlint") version "10.2.0"
id("org.jlleitschuh.gradle.ktlint-idea").version("10.2.0")
id("com.diffplug.spotless") version "5.15.0"
id("io.gitlab.arturbosch.detekt") version "1.18.1"
}
group = "tech.alexib"
java.sourceCompatibility = JavaVersion.VERSION_16
subprojects {
apply<io.gitlab.arturbosch.detekt.DetektPlugin>()
apply<org.jlleitschuh.gradle.ktlint.KtlintPlugin>()
apply<com.diffplug.gradle.spotless.SpotlessPlugin>()
tasks.withType<KotlinCompile> {
kotlinOptions {
freeCompilerArgs = listOf(
"-Xjsr305=strict", "-Xuse-experimental=kotlin.Experimental",
"-Xjvm-default=enable",
"-Xuse-experimental=kotlin.time.ExperimentalTime"
)
jvmTarget = "16"
}
}
tasks.withType<Test> {
useJUnitPlatform()
testLogging {
// showStandardStreams = true
// showExceptions= true
events(
org.gradle.api.tasks.testing.logging.TestLogEvent.PASSED,
org.gradle.api.tasks.testing.logging.TestLogEvent.SKIPPED,
org.gradle.api.tasks.testing.logging.TestLogEvent.FAILED
)
}
}
ktlint {
debug.set(true)
version.set("0.42.1")
verbose.set(true)
android.set(false)
outputToConsole.set(true)
ignoreFailures.set(true)
enableExperimentalRules.set(false)
filter {
exclude { projectDir.toURI().relativize(it.file.toURI()).path.contains("/generated/") }
include("**/kotlin/**")
}
outputToConsole.set(true)
outputColorName.set("BLUE")
ignoreFailures.set(true)
reporters {
reporter(org.jlleitschuh.gradle.ktlint.reporter.ReporterType.PLAIN)
reporter(org.jlleitschuh.gradle.ktlint.reporter.ReporterType.CHECKSTYLE)
}
additionalEditorconfigFile.set(file("${project.projectDir}/.editorConfig"))
}
extensions.configure<io.gitlab.arturbosch.detekt.extensions.DetektExtension>() {
config = rootProject.files("config/detekt/detekt.yml")
reports {
html {
enabled = true
destination = file("build/reports/detekt.html")
}
autoCorrect = true
parallel = true
}
}
spotless {
isEnforceCheck = false
kotlin {
target("src/**/*.kt")
targetExclude("$buildDir/**/*.kt")
targetExclude("**/generated/**")
targetExclude("spotless/copyright.kt")
licenseHeaderFile {
rootProject.file("spotless/copyright.kt")
}
trimTrailingWhitespace()
endWithNewline()
}
kotlinGradle {
target("*.gradle.kts")
ktlint("0.42.1")
}
}
}