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

Make both kotlin and java test compile incremental.

This commit is contained in:
Cedric Beust 2016-01-02 10:29:49 -08:00
parent e7f844ab7f
commit b3107f52b5
3 changed files with 49 additions and 52 deletions

View file

@ -269,5 +269,22 @@ abstract class JvmCompilerPlugin @Inject constructor(
// ISourceDirectoryContributor // ISourceDirectoryContributor
override fun sourceDirectoriesFor(project: Project, context: KobaltContext) override fun sourceDirectoriesFor(project: Project, context: KobaltContext)
= if (accept(project)) sourceDirectories.toList() else arrayListOf() = if (accept(project)) sourceDirectories.toList() else arrayListOf()
@IncrementalTask(name = TASK_COMPILE_TEST, description = "Compile the tests",
runAfter = arrayOf(JvmCompilerPlugin.TASK_COMPILE))
fun taskCompileTest(project: Project): IncrementalTaskInfo {
val inputChecksum = Md5.toMd5Directories(project.sourceDirectoriesTest.map {
File(project.directory, it)
})
return IncrementalTaskInfo(
inputChecksum = inputChecksum,
outputChecksum = {
Md5.toMd5Directories(listOf(KFiles.makeOutputTestDir(project)))
},
task = { project -> doTaskCompileTest(project) }
)
}
abstract protected fun doTaskCompileTest(project: Project): TaskResult
} }

View file

@ -3,7 +3,6 @@ package com.beust.kobalt.plugin.java
import com.beust.kobalt.TaskResult import com.beust.kobalt.TaskResult
import com.beust.kobalt.api.* import com.beust.kobalt.api.*
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.internal.JvmCompiler import com.beust.kobalt.internal.JvmCompiler
import com.beust.kobalt.internal.JvmCompilerPlugin import com.beust.kobalt.internal.JvmCompilerPlugin
import com.beust.kobalt.maven.DepFactory import com.beust.kobalt.maven.DepFactory
@ -51,9 +50,7 @@ class JavaPlugin @Inject constructor(
return result return result
} }
@Task(name = TASK_COMPILE_TEST, description = "Compile the tests", override fun doTaskCompileTest(project: Project): TaskResult {
runAfter = arrayOf(JvmCompilerPlugin.TASK_COMPILE))
fun taskCompileTest(project: Project): TaskResult {
copyResources(project, JvmCompilerPlugin.SOURCE_SET_TEST) copyResources(project, JvmCompilerPlugin.SOURCE_SET_TEST)
val compilerActionInfo = createCompilerActionInfo(project, context, isTest = true) val compilerActionInfo = createCompilerActionInfo(project, context, isTest = true)
val result = javaCompiler.compile(project, context, compilerActionInfo) val result = javaCompiler.compile(project, context, compilerActionInfo)

View file

@ -1,16 +1,13 @@
package com.beust.kobalt.plugin.kotlin package com.beust.kobalt.plugin.kotlin
import com.beust.kobalt.IncrementalTaskInfo
import com.beust.kobalt.TaskResult import com.beust.kobalt.TaskResult
import com.beust.kobalt.api.* import com.beust.kobalt.api.*
import com.beust.kobalt.api.annotation.Directive import com.beust.kobalt.api.annotation.Directive
import com.beust.kobalt.api.annotation.IncrementalTask
import com.beust.kobalt.internal.JvmCompiler import com.beust.kobalt.internal.JvmCompiler
import com.beust.kobalt.internal.JvmCompilerPlugin import com.beust.kobalt.internal.JvmCompilerPlugin
import com.beust.kobalt.maven.DepFactory import com.beust.kobalt.maven.DepFactory
import com.beust.kobalt.maven.DependencyManager import com.beust.kobalt.maven.DependencyManager
import com.beust.kobalt.maven.LocalRepo import com.beust.kobalt.maven.LocalRepo
import com.beust.kobalt.maven.Md5
import com.beust.kobalt.maven.dependency.FileDependency import com.beust.kobalt.maven.dependency.FileDependency
import com.beust.kobalt.maven.dependency.MavenDependency import com.beust.kobalt.maven.dependency.MavenDependency
import com.beust.kobalt.misc.KFiles import com.beust.kobalt.misc.KFiles
@ -75,21 +72,7 @@ class KotlinPlugin @Inject constructor(
// return TaskResult(success) // return TaskResult(success)
// } // }
@IncrementalTask(name = TASK_COMPILE_TEST, description = "Compile the tests", runAfter = arrayOf(TASK_COMPILE)) override protected fun doTaskCompileTest(project: Project) : TaskResult {
fun taskCompileTest(project: Project): IncrementalTaskInfo {
val inputChecksum = Md5.toMd5Directories(project.sourceDirectoriesTest.map {
File(project.directory, it)
})
return IncrementalTaskInfo(
inputChecksum = inputChecksum,
outputChecksum = {
Md5.toMd5Directories(listOf(KFiles.makeOutputTestDir(project)))
},
task = { project -> doTaskCompileTest(project) }
)
}
private fun doTaskCompileTest(project: Project) : TaskResult {
copyResources(project, JvmCompilerPlugin.SOURCE_SET_TEST) copyResources(project, JvmCompilerPlugin.SOURCE_SET_TEST)
val projectDir = File(project.directory) val projectDir = File(project.directory)