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

Handle the case where the are no source files.

This commit is contained in:
Cedric Beust 2015-11-18 03:19:16 -08:00
parent 946f2ffed5
commit 12ad40edd0
2 changed files with 51 additions and 23 deletions

View file

@ -1,5 +1,6 @@
package com.beust.kobalt.plugin.java package com.beust.kobalt.plugin.java
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.IProjectContributor
import com.beust.kobalt.api.Kobalt import com.beust.kobalt.api.Kobalt
@ -8,12 +9,12 @@ 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
import com.beust.kobalt.internal.JvmCompilerPlugin import com.beust.kobalt.internal.JvmCompilerPlugin
import com.beust.kobalt.TaskResult
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.misc.KFiles import com.beust.kobalt.misc.KFiles
import com.beust.kobalt.misc.KobaltExecutors import com.beust.kobalt.misc.KobaltExecutors
import com.beust.kobalt.misc.warn
import java.io.File import java.io.File
import java.nio.file.Paths import java.nio.file.Paths
import java.util.* import java.util.*
@ -56,10 +57,18 @@ public class JavaPlugin @Inject constructor(
fun taskJavadoc(project: Project) : TaskResult { fun taskJavadoc(project: Project) : TaskResult {
val projectDir = File(project.directory) val projectDir = File(project.directory)
val sourceFiles = findSourceFiles(project.directory, project.sourceDirectories) val sourceFiles = findSourceFiles(project.directory, project.sourceDirectories)
val buildDir = File(projectDir, val result =
project.buildDirectory + File.separator + JvmCompilerPlugin.DOCS_DIRECTORY).apply { mkdirs() } if (sourceFiles.size > 0) {
return javaCompiler.javadoc(project, context, project.compileDependencies, sourceFiles, val buildDir = File(projectDir,
buildDir, compilerArgs) project.buildDirectory + File.separator + JvmCompilerPlugin.DOCS_DIRECTORY).apply { mkdirs() }
javaCompiler.javadoc(project, context, project.compileDependencies, sourceFiles,
buildDir, compilerArgs)
} else {
warn("Couldn't find any source files to run Javadoc on")
TaskResult()
}
return result
} }
@Task(name = TASK_COMPILE, description = "Compile the project") @Task(name = TASK_COMPILE, description = "Compile the project")
@ -67,10 +76,17 @@ public class JavaPlugin @Inject constructor(
copyResources(project, JvmCompilerPlugin.SOURCE_SET_MAIN) copyResources(project, JvmCompilerPlugin.SOURCE_SET_MAIN)
val projectDir = File(project.directory) val projectDir = File(project.directory)
val sourceFiles = findSourceFiles(project.directory, project.sourceDirectories) val sourceFiles = findSourceFiles(project.directory, project.sourceDirectories)
val buildDir = File(projectDir, project.buildDirectory + File.separator + "classes") val result =
.apply { mkdirs() } if (sourceFiles.size > 0) {
return javaCompiler.compile(project, context, project.compileDependencies, sourceFiles, val buildDir = File(projectDir, project.buildDirectory + File.separator + "classes")
buildDir, compilerArgs) .apply { mkdirs() }
javaCompiler.compile(project, context, project.compileDependencies, sourceFiles,
buildDir, compilerArgs)
} else {
warn("Couldn't find any source files to compile")
TaskResult()
}
return result
} }
@Task(name = TASK_COMPILE_TEST, description = "Compile the tests", runAfter = arrayOf("compile")) @Task(name = TASK_COMPILE_TEST, description = "Compile the tests", runAfter = arrayOf("compile"))
@ -83,7 +99,7 @@ public class JavaPlugin @Inject constructor(
javaCompiler.compile(project, context, testDependencies(project), sourceFiles, javaCompiler.compile(project, context, testDependencies(project), sourceFiles,
buildDir, compilerArgs) buildDir, compilerArgs)
} else { } else {
// No files to compile warn("Couldn't find any tests to compile")
TaskResult() TaskResult()
} }
return result return result

View file

@ -9,6 +9,7 @@ import com.beust.kobalt.internal.JvmCompilerPlugin
import com.beust.kobalt.maven.* import com.beust.kobalt.maven.*
import com.beust.kobalt.misc.KFiles import com.beust.kobalt.misc.KFiles
import com.beust.kobalt.misc.KobaltExecutors import com.beust.kobalt.misc.KobaltExecutors
import com.beust.kobalt.misc.warn
import java.io.File import java.io.File
import javax.inject.Inject import javax.inject.Inject
import javax.inject.Singleton import javax.inject.Singleton
@ -43,15 +44,20 @@ class KotlinPlugin @Inject constructor(
val buildDirectory = File(projectDirectory, project.buildDirectory + File.separator + "classes") val buildDirectory = File(projectDirectory, project.buildDirectory + File.separator + "classes")
buildDirectory.mkdirs() buildDirectory.mkdirs()
val sourceFiles = files.findRecursively(projectDirectory, val sourceFiles = files.findRecursively(projectDirectory, project.sourceDirectories.map { File(it) },
project.sourceDirectories.map { File(it) }, { it.endsWith(".kt") }) { it .endsWith(".kt") })
val absoluteSourceFiles = sourceFiles.map { .map { File(projectDirectory, it).absolutePath }
File(projectDirectory, it).absolutePath
}
compilePrivate(project, classpath, absoluteSourceFiles, buildDirectory) val result =
lp(project, "Compilation succeeded") if (sourceFiles.size > 0) {
return TaskResult() compilePrivate(project, classpath, sourceFiles, buildDirectory)
lp(project, "Compilation succeeded")
TaskResult()
} else {
warn("Couldn't find any source files")
TaskResult()
}
return result
} }
@Task(name = TASK_COMPILE_TEST, description = "Compile the tests", runAfter = arrayOf(TASK_COMPILE)) @Task(name = TASK_COMPILE_TEST, description = "Compile the tests", runAfter = arrayOf(TASK_COMPILE))
@ -59,16 +65,22 @@ class KotlinPlugin @Inject constructor(
copyResources(project, JvmCompilerPlugin.SOURCE_SET_TEST) copyResources(project, JvmCompilerPlugin.SOURCE_SET_TEST)
val projectDir = File(project.directory) val projectDir = File(project.directory)
val absoluteSourceFiles = files.findRecursively(projectDir, project.sourceDirectoriesTest.map { File(it) }) val sourceFiles = files.findRecursively(projectDir, project.sourceDirectoriesTest.map { File(it) })
{ it: String -> it.endsWith(".kt") } { it: String -> it.endsWith(".kt") }
.map { File(projectDir, it).absolutePath } .map { File(projectDir, it).absolutePath }
compilePrivate(project, testDependencies(project), val result =
absoluteSourceFiles, if (sourceFiles.size > 0) {
makeOutputTestDir(project)) compilePrivate(project, testDependencies(project),
sourceFiles,
makeOutputTestDir(project))
} else {
warn("Couldn't find any test files")
TaskResult()
}
lp(project, "Compilation of tests succeeded") lp(project, "Compilation of tests succeeded")
return TaskResult() return result
} }
private fun compilePrivate(project: Project, cpList: List<IClasspathDependency>, sources: List<String>, private fun compilePrivate(project: Project, cpList: List<IClasspathDependency>, sources: List<String>,