diff options
Diffstat (limited to 'dokka-gradle-plugin/src/main/kotlin/main.kt')
-rw-r--r-- | dokka-gradle-plugin/src/main/kotlin/main.kt | 72 |
1 files changed, 34 insertions, 38 deletions
diff --git a/dokka-gradle-plugin/src/main/kotlin/main.kt b/dokka-gradle-plugin/src/main/kotlin/main.kt index e56b2371..a107260e 100644 --- a/dokka-gradle-plugin/src/main/kotlin/main.kt +++ b/dokka-gradle-plugin/src/main/kotlin/main.kt @@ -15,11 +15,10 @@ import java.util.ArrayList public open class DokkaPlugin : Plugin<Project> { override fun apply(project: Project) { - val ext = project.extensions.create("dokka", DokkaExtension::class.java) - project.tasks.create("dokka", DokkaTask::class.java) - - ext.moduleName = project.name - ext.outputDirectory = File(project.buildDir, "dokka").absolutePath + project.tasks.create("dokka", DokkaTask::class.java).apply { + moduleName = project.name + outputDirectory = File(project.buildDir, "dokka").absolutePath + } } } @@ -29,10 +28,32 @@ public open class DokkaTask : DefaultTask() { description = "Generates dokka documentation for Kotlin" } + var moduleName: String = "" + var outputFormat: String = "html" + var outputDirectory: String = "" + var processConfigurations: ArrayList<String> = arrayListOf("compile") + var includes: ArrayList<String> = arrayListOf() + var linkMappings: ArrayList<LinkMapping> = arrayListOf() + var samples: ArrayList<String> = arrayListOf() + + fun linkMapping(closure: Closure<Any?>) { + val mapping = LinkMapping() + closure.delegate = mapping + closure.call() + + if (mapping.dir.isEmpty()) { + throw IllegalArgumentException("Link mapping should have dir") + } + if (mapping.url.isEmpty()) { + throw IllegalArgumentException("Link mapping should have url") + } + + linkMappings.add(mapping) + } + @TaskAction fun generate() { val project = project - val conf = project.extensions.getByType(DokkaExtension::class.java) val javaPluginConvention = project.convention.getPlugin(JavaPluginConvention::class.java) val sourceSets = javaPluginConvention.sourceSets?.findByName(SourceSet.MAIN_SOURCE_SET_NAME) @@ -40,7 +61,7 @@ public open class DokkaTask : DefaultTask() { val allConfigurations = project.configurations val classpath = - conf.processConfigurations + processConfigurations .map { allConfigurations?.getByName(it) ?: throw IllegalArgumentException("No configuration $it found") } .flatMap { it } @@ -53,43 +74,18 @@ public open class DokkaTask : DefaultTask() { DokkaGradleLogger(logger), classpath.map { it.absolutePath }, sourceDirectories.map { it.absolutePath }, - conf.samples, - conf.includes, - conf.moduleName, - conf.outputDirectory, - conf.outputFormat, - conf.linkMappings.map { SourceLinkDefinition(project.file(it.dir).absolutePath, it.url, it.suffix) }, + samples, + includes, + moduleName, + outputDirectory, + outputFormat, + linkMappings.map { SourceLinkDefinition(project.file(it.dir).absolutePath, it.url, it.suffix) }, false ).generate() } } -public open class DokkaExtension { - var moduleName: String = "" - var outputFormat: String = "html" - var outputDirectory: String = "" - var processConfigurations: ArrayList<String> = arrayListOf("compile") - var includes: ArrayList<String> = arrayListOf() - var linkMappings: ArrayList<LinkMapping> = arrayListOf() - var samples: ArrayList<String> = arrayListOf() - - fun linkMapping(closure: Closure<Any?>) { - val mapping = LinkMapping() - closure.delegate = mapping - closure.call() - - if (mapping.dir.isEmpty()) { - throw IllegalArgumentException("Link mapping should have dir") - } - if (mapping.url.isEmpty()) { - throw IllegalArgumentException("Link mapping should have url") - } - - linkMappings.add(mapping) - } -} - public open class LinkMapping { var dir: String = "" var url: String = "" |