diff options
author | sebastian.sellmair <sebastian.sellmair@jetbrains.com> | 2020-06-03 11:13:02 +0200 |
---|---|---|
committer | Paweł Marks <Kordyjan@users.noreply.github.com> | 2020-06-04 23:49:37 +0200 |
commit | 435e34fe4d63b85ec8f93155153eda0ea2303d73 (patch) | |
tree | c465fa6dd4b3c61e78709f02929bb5eed1910b6d | |
parent | 6dc9498ca849645ecb4ec923bb7116b245dca706 (diff) | |
download | dokka-435e34fe4d63b85ec8f93155153eda0ea2303d73.tar.gz dokka-435e34fe4d63b85ec8f93155153eda0ea2303d73.tar.bz2 dokka-435e34fe4d63b85ec8f93155153eda0ea2303d73.zip |
Implement Project.dokka extension to align kotlin and groovey dokka configuration
4 files changed, 33 insertions, 7 deletions
@@ -52,13 +52,12 @@ dokka { Kotlin ```kotlin -tasks { - val dokka by getting(DokkaTask::class) { - outputFormat = "html" - outputDirectory = "$buildDir/dokka" - } +dokka { + outputFormat = "html" + outputDirectory = "$buildDir/dokka" } ``` +You may need to add an `import org.jetbrains.dokka.gradle.dokka` to the top of `build.gradle.kts` in this case. [Output formats](#output_formats) @@ -225,7 +224,7 @@ kotlin { // Kotlin Multiplatform plugin configuration js("customName") } -val dokka by getting(DokkaTask::class) { +dokka { outputDirectory = "$buildDir/dokka" outputFormat = "html" diff --git a/runners/gradle-plugin/build.gradle.kts b/runners/gradle-plugin/build.gradle.kts index df4a8738..d2e9eccd 100644 --- a/runners/gradle-plugin/build.gradle.kts +++ b/runners/gradle-plugin/build.gradle.kts @@ -16,6 +16,8 @@ dependencies { compileOnly("com.android.tools.build:builder-model:3.0.0") compileOnly(gradleApi()) compileOnly(gradleKotlinDsl()) + testImplementation(gradleApi()) + testImplementation(kotlin("test-junit")) constraints { val kotlin_version: String by project compileOnly("org.jetbrains.kotlin:kotlin-reflect:${kotlin_version}") { diff --git a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt index d72ec0f9..2de95493 100644 --- a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt +++ b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt @@ -341,4 +341,10 @@ open class DokkaTask : DefaultTask(), Configurable { null } } -}
\ No newline at end of file +} + +fun Project.dokka(configuration: DokkaTask.() -> Unit) { + tasks.withType(DokkaTask::class.java) { dokkaTask -> + dokkaTask.configuration() + } +} diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinDslDokkaTaskConfigurationTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinDslDokkaTaskConfigurationTest.kt new file mode 100644 index 00000000..0b80f4a2 --- /dev/null +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinDslDokkaTaskConfigurationTest.kt @@ -0,0 +1,19 @@ +package org.jetbrains.dokka.gradle + +import org.gradle.testfixtures.ProjectBuilder +import kotlin.test.Test +import kotlin.test.assertEquals + +class KotlinDslDokkaTaskConfigurationTest { + + @Test + fun `configure project using dokka extension function`() { + val project = ProjectBuilder.builder().build() + project.plugins.apply("org.jetbrains.dokka") + project.dokka { this.outputFormat = "test" } + + project.tasks.withType(DokkaTask::class.java).forEach { dokkaTask -> + assertEquals("test", dokkaTask.outputFormat) + } + } +} |