import groovy.lang.Closure import org.gradle.internal.impldep.bsh.commands.dir import org.gradle.kotlin.dsl.extra import org.gradle.kotlin.dsl.task import org.jetbrains.dokka.gradle.DokkaTask import org.jetbrains.dokka.gradle.LinkMapping import org.jetbrains.kotlin.contracts.model.structure.UNKNOWN_COMPUTATION.type import org.jetbrains.uast.values.UNullConstant.source // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { extra["kotlin_version"] = "1.2.21" extra["dokka_version"] = "0.9.16-eap-3" repositories { google() jcenter() maven { setUrl("https://dl.bintray.com/kotlin/kotlin-eap") } } dependencies { classpath("com.android.tools.build:gradle:3.0.1") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${extra["kotlin_version"]}") classpath("org.jetbrains.dokka:dokka-android-gradle-plugin:${extra["dokka_version"]}") // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } plugins { /* please make sure it's the same value in {extra["detekt_version"]} we can't use variables here. refer to this open bug https://github.com/gradle/gradle/issues/1697 */ id("io.gitlab.arturbosch.detekt").version("1.0.0.RC6-3") } apply { plugin("kotlin") plugin("org.jetbrains.dokka-android") } allprojects { repositories { google() jcenter() } } repositories { mavenCentral() } extra["compileSdkVersion"] = 27 extra["targetSdkVersion"] = 27 extra["minSdkVersion"] = 19 extra["supportLibVersion"] = "27.0.2" extra["detekt_version"] = "1.0.0.RC6-3" task("generateDocs", DokkaTask::class) { moduleName = rootProject.name outputDirectory = buildDir.toString() + "/docs" sourceDirs = files(subprojects.map { project -> val path = File(project.projectDir, "/src/main/java") val relativePath = rootDir.toPath().relativize(path.toPath()).toString() val mapping = delegateClosureOf { dir = path.toString() url = "https://github.com/xxxx/blob/master/$relativePath" suffix = "#L" } linkMapping(mapping) path }) } detekt { debug = true version = "${extra["detekt_version"]}" profile("main", Action { input = projectDir.toString() config = "$projectDir/detekt-config.yml" filters = ".*test.*,.*/resources/.*,.*/tmp/.*" }) }