diff --git a/src/main/kotlin/com/beust/kobalt/plugin/java/JavaPlugin.kt b/src/main/kotlin/com/beust/kobalt/plugin/java/JavaPlugin.kt index 9f6108d2..8df0c303 100644 --- a/src/main/kotlin/com/beust/kobalt/plugin/java/JavaPlugin.kt +++ b/src/main/kotlin/com/beust/kobalt/plugin/java/JavaPlugin.kt @@ -44,9 +44,18 @@ class JavaPlugin @Inject constructor(val javaCompiler: JavaCompiler, override va // IDocFlagContributor override fun docFlagsFor(project: Project, context: KobaltContext, currentFlags: List, suffixesBeingCompiled: List): List { - return listOf("-d", "javadoc", "-Xdoclint:none", "-Xmaxerrs", "1", "-quiet") + val config = javadocConfigurations[project.name] + val args = config?.args ?: DEFAULT_JAVADOC_ARGS + return args } + val DEFAULT_JAVADOC_ARGS = listOf("-d", "javadoc", "-Xdoclint:none", "-Xmaxerrs", "1", "-quiet") + + val javadocConfigurations = hashMapOf() + + fun addJavadocConfiguration(project: Project, configuration: JavadocConfig) + = javadocConfigurations.put(project.name, configuration) + // ICompilerContributor val compiler = CompilerDescription(PLUGIN_NAME, "java", SOURCE_SUFFIXES, javaCompiler) @@ -77,4 +86,17 @@ fun Project.javaCompiler(init: JavaConfig.() -> Unit) = JavaConfig(this).also { config -> config.init() (Kobalt.findPlugin(JavaPlugin.PLUGIN_NAME) as JavaPlugin).addConfiguration(this, config) - } \ No newline at end of file + } + +class JavadocConfig(val project: Project) { + val args = arrayListOf() + fun args(vararg options: String) = args.addAll(options) +} + +@Directive +fun Project.javadoc(init: JavadocConfig.() -> Unit) = + JavadocConfig(this).also { config -> + config.init() + (Kobalt.findPlugin(JavaPlugin.PLUGIN_NAME) as JavaPlugin).addJavadocConfiguration(this, config) + } +