diff options
author | Simon Ogorodnik <sem-oro@yandex.ru> | 2016-11-01 02:10:32 +0300 |
---|---|---|
committer | Simon Ogorodnik <Simon.Ogorodnik@jetbrains.com> | 2016-11-01 14:46:01 +0300 |
commit | 769701f99a1aefbc9d385c1938c9c7d3a7b2e38e (patch) | |
tree | c3ea4802d9e627c90870808aba9343eb224a114c /maven-plugin/src/main/kotlin/DokkaMojo.kt | |
parent | 08bcaa257f7b48929af6ee29007dd6f0d7bb1b52 (diff) | |
download | dokka-769701f99a1aefbc9d385c1938c9c7d3a7b2e38e.tar.gz dokka-769701f99a1aefbc9d385c1938c9c7d3a7b2e38e.tar.bz2 dokka-769701f99a1aefbc9d385c1938c9c7d3a7b2e38e.zip |
Total build refactoring, prepare for new development iteration
Removed old and useless build helpers
Remove old .xml's from .idea and add .idea/shelf to .gitignore
build-docs.xml fixed, dokka_version set to 0.9.10
Diffstat (limited to 'maven-plugin/src/main/kotlin/DokkaMojo.kt')
-rw-r--r-- | maven-plugin/src/main/kotlin/DokkaMojo.kt | 179 |
1 files changed, 0 insertions, 179 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 - } -} - |