1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-26 08:27:12 -07:00

Support multiple dokka tasks.

This commit is contained in:
Cedric Beust 2015-11-18 17:13:25 -08:00
parent 074811da1d
commit df20758428
2 changed files with 19 additions and 7 deletions

View file

@ -0,0 +1,14 @@
package com.beust.kobalt.api
import com.google.common.collect.ArrayListMultimap
/**
* A plug-in that has some per-project list of configurations in the build file.
*/
abstract public class ConfigsPlugin<T> : BasePlugin() {
private val configurations = ArrayListMultimap.create<String, T>()
fun configurationFor(project: Project) = configurations[project.name]
fun addConfiguration(project: Project, configuration: T) = configurations.put(project.name, configuration)
}

View file

@ -1,7 +1,7 @@
package com.beust.kobalt.plugin.dokka package com.beust.kobalt.plugin.dokka
import com.beust.kobalt.TaskResult import com.beust.kobalt.TaskResult
import com.beust.kobalt.api.ConfigPlugin import com.beust.kobalt.api.ConfigsPlugin
import com.beust.kobalt.api.Kobalt import com.beust.kobalt.api.Kobalt
import com.beust.kobalt.api.Project import com.beust.kobalt.api.Project
import com.beust.kobalt.api.annotation.Directive import com.beust.kobalt.api.annotation.Directive
@ -16,7 +16,7 @@ import java.util.*
import javax.inject.Singleton import javax.inject.Singleton
@Singleton @Singleton
class DokkaPlugin : ConfigPlugin<DokkaConfig>() { class DokkaPlugin : ConfigsPlugin<DokkaConfig>() {
override val name = PLUGIN_NAME override val name = PLUGIN_NAME
companion object { companion object {
@ -28,13 +28,13 @@ class DokkaPlugin : ConfigPlugin<DokkaConfig>() {
*/ */
@Task(name = "dokka", description = "Run dokka", runAfter = arrayOf(PackagingPlugin.TASK_ASSEMBLE)) @Task(name = "dokka", description = "Run dokka", runAfter = arrayOf(PackagingPlugin.TASK_ASSEMBLE))
fun taskDokka(project: Project) : TaskResult { fun taskDokka(project: Project) : TaskResult {
val config = configurationFor(project) val configs = configurationFor(project)
val classpath = context.dependencyManager.calculateDependencies(project, context) val classpath = context.dependencyManager.calculateDependencies(project, context)
val buildDir = project.buildDirectory!! val buildDir = project.buildDirectory!!
val classpathList = classpath.map { it.jarFile.get().absolutePath } + listOf(buildDir) val classpathList = classpath.map { it.jarFile.get().absolutePath } + listOf(buildDir)
var success = true var success = true
if (config != null) { configs.forEach { config ->
if (! config.skip) { if (!config.skip) {
val outputDir = buildDir + "/" + val outputDir = buildDir + "/" +
if (config.outputDir.isBlank()) "doc" else config.outputDir if (config.outputDir.isBlank()) "doc" else config.outputDir
@ -54,8 +54,6 @@ class DokkaPlugin : ConfigPlugin<DokkaConfig>() {
} else { } else {
log(2, "skip is true, not generating the documentation") log(2, "skip is true, not generating the documentation")
} }
} else {
log(2, "No dokka configuration found for project ${project.name}, skipping it")
} }
return TaskResult(success) return TaskResult(success)
} }