11import com.diffplug.spotless.LineEnding
22import com.vanniktech.maven.publish.MavenPublishPlugin
33import com.vanniktech.maven.publish.MavenPublishPluginExtension
4+ import io.gitlab.arturbosch.detekt.Detekt
45
56plugins {
67 id(Config .gradleMavenPublishPlugin).version(Config .gradleMavenPublishPluginVersion)
78 id(Config .QualityPlugins .spotless).version(Config .QualityPlugins .spotlessVersion)
9+ id(Config .QualityPlugins .detekt).version(Config .QualityPlugins .detektVersion)
10+ id(Config .dokka).version(Config .dokkaVersion)
811 kotlin(Config .multiplatform).version(Config .kotlinVersion).apply (false )
912 kotlin(Config .cocoapods).version(Config .kotlinVersion).apply (false )
1013 id(Config .jetpackCompose).version(Config .composeVersion).apply (false )
@@ -52,6 +55,12 @@ subprojects {
5255 }
5356}
5457
58+ subprojects {
59+ if (project.name.contains(" sentry-kotlin-multiplatform" )) {
60+ apply (plugin = Config .dokka)
61+ }
62+ }
63+
5564spotless {
5665 lineEndings = LineEnding .UNIX
5766
@@ -64,3 +73,39 @@ spotless {
6473 ktlint()
6574 }
6675}
76+
77+ val detektConfigFilePath = " $rootDir /config/detekt/detekt.yml"
78+ val detektBaselineFilePath = " $rootDir /config/detekt/baseline.xml"
79+
80+ detekt {
81+ buildUponDefaultConfig = true
82+ config = files(detektConfigFilePath)
83+ baseline = file(detektBaselineFilePath)
84+ }
85+
86+ fun SourceTask.detektExcludes () {
87+ exclude(" **/build/**" )
88+ exclude(" **/*.kts" )
89+ exclude(" **/buildSrc/**" )
90+ exclude(" **/*Test*/**" )
91+ exclude(" **/resources/**" )
92+ exclude(" **/sentry-samples/**" )
93+ }
94+
95+ tasks.withType<Detekt >().configureEach {
96+ reports {
97+ html.required.set(true )
98+ }
99+ setSource(files(project.projectDir))
100+ detektExcludes()
101+ }
102+
103+ /* * Task for generating a Detekt baseline.xml */
104+ val detektProjectBaseline by tasks.registering(io.gitlab.arturbosch.detekt.DetektCreateBaselineTask ::class ) {
105+ buildUponDefaultConfig.set(true )
106+ setSource(files(rootDir))
107+ config.setFrom(files(detektConfigFilePath))
108+ baseline.set(file(detektBaselineFilePath))
109+ include(" **/*.kt" )
110+ detektExcludes()
111+ }
0 commit comments