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

More refactoring into JvmCompilerPlugin.

This commit is contained in:
Cedric Beust 2015-11-17 19:12:56 -08:00
parent da504c682f
commit 51431dca93
3 changed files with 14 additions and 24 deletions

View file

@ -2,9 +2,9 @@ package com.beust.kobalt.internal
import com.beust.kobalt.TaskResult import com.beust.kobalt.TaskResult
import com.beust.kobalt.api.BasePlugin import com.beust.kobalt.api.BasePlugin
import com.beust.kobalt.api.IProjectContributor
import com.beust.kobalt.api.KobaltContext import com.beust.kobalt.api.KobaltContext
import com.beust.kobalt.api.Project import com.beust.kobalt.api.Project
import com.beust.kobalt.api.ProjectDescription
import com.beust.kobalt.api.annotation.ExportedProjectProperty import com.beust.kobalt.api.annotation.ExportedProjectProperty
import com.beust.kobalt.api.annotation.Task import com.beust.kobalt.api.annotation.Task
import com.beust.kobalt.maven.* import com.beust.kobalt.maven.*
@ -12,6 +12,7 @@ import com.beust.kobalt.misc.KFiles
import com.beust.kobalt.misc.KobaltExecutors import com.beust.kobalt.misc.KobaltExecutors
import com.beust.kobalt.misc.log import com.beust.kobalt.misc.log
import com.beust.kobalt.misc.warn import com.beust.kobalt.misc.warn
import com.beust.kobalt.plugin.java.JavaPlugin
import java.io.File import java.io.File
import java.util.* import java.util.*
import javax.inject.Inject import javax.inject.Inject
@ -24,7 +25,7 @@ abstract class JvmCompilerPlugin @Inject constructor(
open val depFactory: DepFactory, open val depFactory: DepFactory,
open val dependencyManager: DependencyManager, open val dependencyManager: DependencyManager,
open val executors: KobaltExecutors, open val executors: KobaltExecutors,
open val jvmCompiler: JvmCompiler) : BasePlugin() { open val jvmCompiler: JvmCompiler) : BasePlugin(), IProjectContributor {
companion object { companion object {
@ExportedProjectProperty(doc = "The location of the build directory", type = "String") @ExportedProjectProperty(doc = "The location of the build directory", type = "String")
@ -138,10 +139,13 @@ abstract class JvmCompilerPlugin @Inject constructor(
.map { File(projectDir, it).absolutePath } .map { File(projectDir, it).absolutePath }
} }
fun baseTaskCompile(project: Project, projectDescriptions: List<ProjectDescription>) : TaskResult { override fun projects() = projects
@Task(name = JavaPlugin.TASK_COMPILE, description = "Compile the project")
fun taskCompile(project: Project) : TaskResult {
copyResources(project, JvmCompilerPlugin.SOURCE_SET_MAIN) copyResources(project, JvmCompilerPlugin.SOURCE_SET_MAIN)
val projDeps = dependencyManager.dependentProjectDependencies(projectDescriptions, project, context) val projDeps = dependencyManager.dependentProjectDependencies(projects(), project, context)
val classpath = dependencyManager.calculateDependencies(project, context, project.compileDependencies, val classpath = dependencyManager.calculateDependencies(project, context, project.compileDependencies,
project.compileProvidedDependencies, projDeps) project.compileProvidedDependencies, projDeps)

View file

@ -2,7 +2,6 @@ package com.beust.kobalt.plugin.java
import com.beust.kobalt.TaskResult import com.beust.kobalt.TaskResult
import com.beust.kobalt.api.BasePlugin import com.beust.kobalt.api.BasePlugin
import com.beust.kobalt.api.IProjectContributor
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
@ -31,8 +30,7 @@ public class JavaPlugin @Inject constructor(
override val executors: KobaltExecutors, override val executors: KobaltExecutors,
val javaCompiler: JavaCompiler, val javaCompiler: JavaCompiler,
override val jvmCompiler: JvmCompiler) override val jvmCompiler: JvmCompiler)
: JvmCompilerPlugin(localRepo, files, depFactory, dependencyManager, executors, jvmCompiler), : JvmCompilerPlugin(localRepo, files, depFactory, dependencyManager, executors, jvmCompiler) {
IProjectContributor {
companion object { companion object {
public const val TASK_COMPILE : String = "compile" public const val TASK_COMPILE : String = "compile"
public const val TASK_JAVADOC : String = "javadoc" public const val TASK_JAVADOC : String = "javadoc"
@ -72,11 +70,6 @@ public class JavaPlugin @Inject constructor(
} }
@Task(name = TASK_COMPILE, description = "Compile the project")
fun taskCompile(project: Project) : TaskResult {
return baseTaskCompile(project, projects())
}
override fun doCompile(project: Project, classpath: List<IClasspathDependency>, sourceFiles: List<String>, override fun doCompile(project: Project, classpath: List<IClasspathDependency>, sourceFiles: List<String>,
buildDirectory: File) : TaskResult { buildDirectory: File) : TaskResult {
val result = val result =
@ -105,8 +98,6 @@ public class JavaPlugin @Inject constructor(
} }
return result return result
} }
override fun projects() = projects
} }
@Directive @Directive

View file

@ -1,7 +1,10 @@
package com.beust.kobalt.plugin.kotlin package com.beust.kobalt.plugin.kotlin
import com.beust.kobalt.TaskResult import com.beust.kobalt.TaskResult
import com.beust.kobalt.api.* import com.beust.kobalt.api.BasePlugin
import com.beust.kobalt.api.IClasspathContributor
import com.beust.kobalt.api.Kobalt
import com.beust.kobalt.api.Project
import com.beust.kobalt.api.annotation.Directive import com.beust.kobalt.api.annotation.Directive
import com.beust.kobalt.api.annotation.Task import com.beust.kobalt.api.annotation.Task
import com.beust.kobalt.internal.JvmCompiler import com.beust.kobalt.internal.JvmCompiler
@ -23,7 +26,7 @@ class KotlinPlugin @Inject constructor(
override val executors: KobaltExecutors, override val executors: KobaltExecutors,
override val jvmCompiler: JvmCompiler) override val jvmCompiler: JvmCompiler)
: JvmCompilerPlugin(localRepo, files, depFactory, dependencyManager, executors, jvmCompiler), : JvmCompilerPlugin(localRepo, files, depFactory, dependencyManager, executors, jvmCompiler),
IProjectContributor, IClasspathContributor { IClasspathContributor {
companion object { companion object {
public const val TASK_COMPILE: String = "compile" public const val TASK_COMPILE: String = "compile"
@ -34,11 +37,6 @@ class KotlinPlugin @Inject constructor(
override fun accept(project: Project) = project is KotlinProject override fun accept(project: Project) = project is KotlinProject
@Task(name = TASK_COMPILE, description = "Compile the project")
fun taskCompile(project: Project): TaskResult {
return baseTaskCompile(project, projects())
}
override fun doCompile(project: Project, classpath: List<IClasspathDependency>, sourceFiles: List<String>, override fun doCompile(project: Project, classpath: List<IClasspathDependency>, sourceFiles: List<String>,
buildDirectory: File) : TaskResult { buildDirectory: File) : TaskResult {
val result = val result =
@ -86,9 +84,6 @@ class KotlinPlugin @Inject constructor(
}.compile(project, context) }.compile(project, context)
} }
// interface IProjectContributor
override fun projects() = projects
private fun getKotlinCompilerJar(name: String) : String { private fun getKotlinCompilerJar(name: String) : String {
val id = "org.jetbrains.kotlin:$name:${KotlinCompiler.KOTLIN_VERSION}" val id = "org.jetbrains.kotlin:$name:${KotlinCompiler.KOTLIN_VERSION}"
val dep = MavenDependency.create(id, executors.miscExecutor) val dep = MavenDependency.create(id, executors.miscExecutor)