Skip to content

Commit 303dcd8

Browse files
authored
Feature/detekt (#6)
* [WIP] Add detekt * [WIP] Add detekt * Move detekt script under buildsrc * [WIP] Add detekt * [WIP] Add detekt * Add detekt * Remove comments
1 parent 6b5ba96 commit 303dcd8

File tree

7 files changed

+818
-6
lines changed

7 files changed

+818
-6
lines changed

build.gradle.kts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
plugins {
2-
id("org.sonarqube") version "3.0"
2+
kotlin("jvm") version app.web.drjackycv.buildsrc.Depends.Versions.kotlinVersion
3+
id("org.sonarqube") version app.web.drjackycv.buildsrc.Depends.Versions.sonarqubeVersion
4+
detekt
35
}
46

57
buildscript {
@@ -32,7 +34,3 @@ allprojects {
3234
maven("https://plugins.gradle.org/m2/")
3335
}
3436
}
35-
36-
tasks.register<Delete>("clean") {
37-
delete(rootProject.buildDir)
38-
}

buildSrc/build.gradle.kts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,9 @@ plugins {
44

55
repositories {
66
jcenter()
7+
gradlePluginPortal()
8+
}
9+
10+
dependencies {
11+
implementation("io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.15.0-RC1")
712
}

buildSrc/src/main/kotlin/app/web/drjackycv/buildsrc/Depends.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ object Depends {
4848
const val testCoreVersion = "1.2.0"
4949
const val testExtJunitVersion = "1.1.1"
5050
const val sonarqubeVersion = "3.0"
51-
51+
const val detektVersion = "1.15.0-RC1"
5252
}
5353

5454
object ClassPaths {
@@ -61,6 +61,8 @@ object Depends {
6161
"com.google.dagger:hilt-android-gradle-plugin:${Versions.hiltVersion}"
6262
const val sonarqube_gradle_plugin =
6363
"org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:${Versions.sonarqubeVersion}"
64+
const val detekt_gradle_plugin =
65+
"io.gitlab.arturbosch.detekt:detekt-gradle-plugin:${Versions.detektVersion}"
6466
}
6567

6668
object Libraries {
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
import io.gitlab.arturbosch.detekt.Detekt
2+
import io.gitlab.arturbosch.detekt.DetektCreateBaselineTask
3+
import io.gitlab.arturbosch.detekt.extensions.DetektExtension
4+
5+
plugins {
6+
id("io.gitlab.arturbosch.detekt")
7+
}
8+
9+
val analysisDir = file(projectDir)
10+
val baselineFile = file("$rootDir/config/detekt/baseline.xml")
11+
val configFile = file("$rootDir/config/detekt/detekt.yml")
12+
//val statisticsConfigFile = file("$rootDir/config/detekt/statistics.yml")
13+
14+
val kotlinFiles = "**/*.kt"
15+
val kotlinScriptFiles = "**/*.kts"
16+
val resourceFiles = "**/resources/**"
17+
val buildFiles = "**/build/**"
18+
19+
detekt {
20+
toolVersion = app.web.drjackycv.buildsrc.Depends.Versions.detektVersion
21+
buildUponDefaultConfig = true
22+
baseline = baselineFile
23+
config = files("config/detekt/detekt.yml")
24+
input = objects.fileCollection().from(
25+
DetektExtension.DEFAULT_SRC_DIR_JAVA,
26+
"src/test/java",
27+
DetektExtension.DEFAULT_SRC_DIR_KOTLIN,
28+
"src/test/kotlin"
29+
)
30+
reports {
31+
html.enabled = true
32+
html.destination = file("$projectDir/build/detekt/report.html")
33+
xml.enabled = true
34+
xml.destination = file("$projectDir/build/detekt/report.xml")
35+
txt.enabled = true
36+
txt.destination = file("$projectDir/build/detekt/report.txt")
37+
}
38+
}
39+
40+
dependencies {
41+
detektPlugins(app.web.drjackycv.buildsrc.Depends.ClassPaths.detekt_gradle_plugin)
42+
}
43+
44+
val detektFormat by tasks.registering(Detekt::class) {
45+
description = "Formats whole project."
46+
parallel = true
47+
disableDefaultRuleSets = true
48+
buildUponDefaultConfig = true
49+
autoCorrect = true
50+
setSource(analysisDir)
51+
// config.setFrom(listOf(statisticsConfigFile, configFile))
52+
include(kotlinFiles)
53+
include(kotlinScriptFiles)
54+
exclude(resourceFiles)
55+
exclude(buildFiles)
56+
baseline.set(baselineFile)
57+
reports {
58+
xml.enabled = true
59+
html.enabled = true
60+
txt.enabled = true
61+
}
62+
}
63+
64+
val detektAll by tasks.registering(Detekt::class) {
65+
description = "Runs the whole project at once."
66+
parallel = true
67+
buildUponDefaultConfig = true
68+
setSource(analysisDir)
69+
// config.setFrom(listOf(statisticsConfigFile, configFile))
70+
include(kotlinFiles)
71+
include(kotlinScriptFiles)
72+
exclude(resourceFiles)
73+
exclude(buildFiles)
74+
baseline.set(baselineFile)
75+
reports {
76+
xml.enabled = true
77+
html.enabled = true
78+
txt.enabled = true
79+
}
80+
}
81+
82+
val detektProjectBaseline by tasks.registering(DetektCreateBaselineTask::class) {
83+
description = "Overrides current baseline."
84+
buildUponDefaultConfig.set(true)
85+
ignoreFailures.set(true)
86+
parallel.set(true)
87+
setSource(analysisDir)
88+
// config.setFrom(listOf(statisticsConfigFile, configFile))
89+
include(kotlinFiles)
90+
include(kotlinScriptFiles)
91+
exclude(resourceFiles)
92+
exclude(buildFiles)
93+
baseline.set(baselineFile)
94+
}

config/detekt/argsfile

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
-i
2+
.
3+
-b
4+
./config/detekt/baseline.xml
5+
-ex
6+
**/resources/**,**/detekt*/build/**,**/buildSrc/build/**
7+
--build-upon-default-config
8+
-c
9+
./config/detekt/detekt.yml
10+
-r
11+
html:./build/detekt-report.html
12+
-r
13+
xml:./build/detekt-report.xml
14+
-r
15+
txt:./build/detekt-report.txt
16+
-p
17+
./build/detekt-formatting.jar

config/detekt/baseline.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0" ?>
2+
<SmellBaseline>
3+
<ManuallySuppressedIssues />
4+
<CurrentIssues>
5+
<ID>LargeClass:UnusedPrivateMemberSpec.kt$UnusedPrivateMemberSpec : Spek</ID>
6+
</CurrentIssues>
7+
</SmellBaseline>

0 commit comments

Comments
 (0)