-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle.kts
95 lines (83 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
import io.gitlab.arturbosch.detekt.Detekt
import io.gitlab.arturbosch.detekt.DetektCreateBaselineTask
import io.gitlab.arturbosch.detekt.report.ReportMergeTask
// Top-level build file where you can add configuration options common to all sub-projects/modules.
@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed
plugins {
alias(libs.plugins.androidApplication) apply false
alias(libs.plugins.kotlinAndroid) apply false
alias(libs.plugins.androidLibrary) apply false
alias(libs.plugins.detekt)
alias(libs.plugins.com.android.test) apply false
}
true // Needed to make the Suppress annotation work for the plugins block
buildscript {
dependencies {
// other plugins...
classpath(libs.hilt.android.gradle.plugin)
classpath(libs.detekt.gradle.plugin)
}
}
val sarifReportMerge by tasks.registering(ReportMergeTask::class) {
output.set(rootProject.buildDir.resolve("reports/detekt/merged_report.sarif"))
}
subprojects {
/**
* Start Configuring Detekt
*/
coreDetektSetup()
beforeEvaluate {
dependencies {
detektPlugins(libs.detekt.formatting)
detektPlugins(libs.twitter.compose.detekt)
}
}
}
/**
* To run detekt simply:
* 1. ./gradlew module:detekt for each module
* 2. ./gradlew detekt for whole project
*/
fun Project.coreDetektSetup() {
// Apply Plugin to sub-project
apply(plugin = "io.gitlab.arturbosch.detekt")
// Configure Detekt
detekt {
config = files("$rootDir/config/detekt/default-detekt-config.yml")
buildUponDefaultConfig = true
ignoredBuildTypes = listOf("release")
source = files(
io.gitlab.arturbosch.detekt.extensions.DetektExtension.DEFAULT_SRC_DIR_JAVA,
io.gitlab.arturbosch.detekt.extensions.DetektExtension.DEFAULT_TEST_SRC_DIR_JAVA,
io.gitlab.arturbosch.detekt.extensions.DetektExtension.DEFAULT_SRC_DIR_KOTLIN,
io.gitlab.arturbosch.detekt.extensions.DetektExtension.DEFAULT_TEST_SRC_DIR_KOTLIN,
)
}
tasks.withType<Detekt>().configureEach detekt@{
exclude("**/build/**", "**/generated/**", "**/resources/**")
basePath = rootProject.projectDir.absolutePath
autoCorrect = true // Auto corrects common formatting issues
// Configure reports here
reports {
xml.required.set(false)
txt.required.set(false)
md.required.set(false)
html {
required.set(true)
outputLocation.set(
layout.buildDirectory.file("reports/detekt.html")
)
}
sarif.required.set(true)
}
// Merged Report
finalizedBy(sarifReportMerge)
sarifReportMerge.configure {
input.from([email protected])
}
}
tasks.withType<DetektCreateBaselineTask>().configureEach detekt@{
exclude("**/build/**", "**/generated/**", "**/resources/**")
basePath = rootProject.projectDir.absolutePath
}
}