diff options
Diffstat (limited to 'maven-plugin/src/main/kotlin')
-rw-r--r-- | maven-plugin/src/main/kotlin/DokkaMojo.kt | 179 | ||||
-rw-r--r-- | maven-plugin/src/main/kotlin/MavenDokkaLogger.kt | 18 |
2 files changed, 0 insertions, 197 deletions
diff --git a/maven-plugin/src/main/kotlin/DokkaMojo.kt b/maven-plugin/src/main/kotlin/DokkaMojo.kt deleted file mode 100644 index 899d2dde..00000000 --- a/maven-plugin/src/main/kotlin/DokkaMojo.kt +++ /dev/null @@ -1,179 +0,0 @@ -package org.jetbrains.dokka.maven - -import org.apache.maven.archiver.MavenArchiveConfiguration -import org.apache.maven.archiver.MavenArchiver -import org.apache.maven.execution.MavenSession -import org.apache.maven.plugin.AbstractMojo -import org.apache.maven.plugins.annotations.* -import org.apache.maven.project.MavenProject -import org.apache.maven.project.MavenProjectHelper -import org.jetbrains.dokka.DokkaGenerator -import org.jetbrains.dokka.SourceLinkDefinition -import org.jetbrains.dokka.DocumentationOptions -import org.codehaus.plexus.archiver.Archiver -import org.codehaus.plexus.archiver.jar.JarArchiver -import java.io.File - -class SourceLinkMapItem { - @Parameter(name = "dir", required = true) - var dir: String = "" - - @Parameter(name = "url", required = true) - var url: String = "" - - @Parameter(name = "urlSuffix") - var urlSuffix: String? = null -} - -abstract class AbstractDokkaMojo : AbstractMojo() { - @Parameter(required = true, defaultValue = "\${project.compileSourceRoots}") - var sourceDirectories: List<String> = emptyList() - - @Parameter - var samplesDirs: List<String> = emptyList() - - @Parameter - @Deprecated("Use <includes> instead") - var includeDirs: List<String> = emptyList() - - @Parameter - var includes: List<String> = emptyList() - - @Parameter(required = true, defaultValue = "\${project.compileClasspathElements}") - var classpath: List<String> = emptyList() - - @Parameter - var sourceLinks: Array<SourceLinkMapItem> = emptyArray() - - @Parameter(required = true, defaultValue = "\${project.artifactId}") - var moduleName: String = "" - - @Parameter(required = false, defaultValue = "false") - var skip: Boolean = false - - @Parameter(required = false, defaultValue = "6") - var jdkVersion: Int = 6 - - protected abstract fun getOutDir(): String - protected abstract fun getOutFormat(): String - - override fun execute() { - if (skip) { - log.info("Dokka skip parameter is true so no dokka output will be produced") - return - } - - val gen = DokkaGenerator( - MavenDokkaLogger(log), - classpath, - sourceDirectories, - samplesDirs, - includeDirs + includes, - moduleName, - DocumentationOptions(getOutDir(), getOutFormat(), - sourceLinks = sourceLinks.map { SourceLinkDefinition(it.dir, it.url, it.urlSuffix) }, - jdkVersion = jdkVersion - ) - ) - - gen.generate() - } -} - -@Mojo(name = "dokka", defaultPhase = LifecyclePhase.PRE_SITE, threadSafe = true, requiresDependencyResolution = ResolutionScope.COMPILE, requiresProject = true) -class DokkaMojo : AbstractDokkaMojo() { - @Parameter(required = true, defaultValue = "html") - var outputFormat: String = "html" - - @Parameter(required = true, defaultValue = "\${project.basedir}/target/dokka") - var outputDir: String = "" - - override fun getOutFormat() = outputFormat - override fun getOutDir() = outputDir -} - -@Mojo(name = "javadoc", defaultPhase = LifecyclePhase.PRE_SITE, threadSafe = true, requiresDependencyResolution = ResolutionScope.COMPILE, requiresProject = true) -class DokkaJavadocMojo : AbstractDokkaMojo() { - @Parameter(required = true, defaultValue = "\${project.basedir}/target/dokkaJavadoc") - var outputDir: String = "" - - override fun getOutFormat() = "javadoc" - override fun getOutDir() = outputDir -} - -@Mojo(name = "javadocJar", defaultPhase = LifecyclePhase.PRE_SITE, threadSafe = true, requiresDependencyResolution = ResolutionScope.COMPILE, requiresProject = true) -class DokkaJavadocJarMojo : AbstractDokkaMojo() { - @Parameter(required = true, defaultValue = "\${project.basedir}/target/dokkaJavadocJar") - var outputDir: String = "" - - /** - * Specifies the directory where the generated jar file will be put. - */ - @Parameter(property = "project.build.directory") - private var jarOutputDirectory: String? = null - - /** - * Specifies the filename that will be used for the generated jar file. Please note that `-javadoc` - * or `-test-javadoc` will be appended to the file name. - */ - @Parameter(property = "project.build.finalName") - private var finalName: String? = null - - /** - * Specifies whether to attach the generated artifact to the project helper. - */ - @Parameter(property = "attach", defaultValue = "true") - private val attach: Boolean = false - - /** - * The archive configuration to use. - * See [Maven Archiver Reference](http://maven.apache.org/shared/maven-archiver/index.html) - */ - @Parameter - private val archive = MavenArchiveConfiguration() - - @Parameter(property = "maven.javadoc.classifier", defaultValue = "javadoc", required = true) - private var classifier: String? = null - - @Parameter(defaultValue = "\${session}", readonly = true, required = true) - protected var session: MavenSession? = null - - @Parameter(defaultValue = "\${project}", readonly = true, required = true) - protected var project: MavenProject? = null - - @Component - private var projectHelper: MavenProjectHelper? = null - - @Component(role = Archiver::class, hint = "jar") - private var jarArchiver: JarArchiver? = null - - override fun getOutFormat() = "javadoc" - override fun getOutDir() = outputDir - - override fun execute() { - super.execute() - if(!File(outputDir).exists()) { - log.warn("No javadoc generated so no javadoc jar will be generated") - return - } - val outputFile = generateArchive("$finalName-$classifier.jar") - if (attach) { - projectHelper?.attachArtifact(project, "javadoc", classifier, outputFile) - } - } - - private fun generateArchive(jarFileName: String): File { - val javadocJar = File(jarOutputDirectory, jarFileName) - - val archiver = MavenArchiver() - archiver.setArchiver(jarArchiver) - archiver.setOutputFile(javadocJar) - archiver.archiver.addDirectory(File(outputDir), arrayOf("**/**"), arrayOf()) - - archive.setAddMavenDescriptor(false) - archiver.createArchive(session, project, archive) - - return javadocJar - } -} - diff --git a/maven-plugin/src/main/kotlin/MavenDokkaLogger.kt b/maven-plugin/src/main/kotlin/MavenDokkaLogger.kt deleted file mode 100644 index a535c807..00000000 --- a/maven-plugin/src/main/kotlin/MavenDokkaLogger.kt +++ /dev/null @@ -1,18 +0,0 @@ -package org.jetbrains.dokka.maven - -import org.apache.maven.plugin.logging.Log -import org.jetbrains.dokka.DokkaLogger - -class MavenDokkaLogger(val log: Log) : DokkaLogger { - override fun error(message: String) { - log.error(message) - } - - override fun info(message: String) { - log.info(message) - } - - override fun warn(message: String) { - log.warn(message) - } -}
\ No newline at end of file |