aboutsummaryrefslogtreecommitdiff
path: root/maven-plugin/src/main/kotlin
diff options
context:
space:
mode:
Diffstat (limited to 'maven-plugin/src/main/kotlin')
-rw-r--r--maven-plugin/src/main/kotlin/DokkaMojo.kt179
-rw-r--r--maven-plugin/src/main/kotlin/MavenDokkaLogger.kt18
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