1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-26 00:17:11 -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
import com.beust.kobalt.TaskResult
import com.beust.kobalt.api.BasePlugin
import com.beust.kobalt.api.IProjectContributor
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.internal.JvmCompiler
import com.beust.kobalt.internal.JvmCompilerPlugin
import com.beust.kobalt.TaskResult
import com.beust.kobalt.maven.DepFactory
import com.beust.kobalt.maven.DependencyManager
import com.beust.kobalt.maven.LocalRepo
import com.beust.kobalt.misc.KFiles
import com.beust.kobalt.misc.KobaltExecutors
import com.beust.kobalt.misc.warn
import java.io.File
import java.nio.file.Paths
import java.util.*
@ -56,10 +57,18 @@ public class JavaPlugin @Inject constructor(
fun taskJavadoc(project: Project) : TaskResult {
val projectDir = File(project.directory)
val sourceFiles = findSourceFiles(project.directory, project.sourceDirectories)
val buildDir = File(projectDir,
project.buildDirectory + File.separator + JvmCompilerPlugin.DOCS_DIRECTORY).apply { mkdirs() }
return javaCompiler.javadoc(project, context, project.compileDependencies, sourceFiles,
buildDir, compilerArgs)
val result =
if (sourceFiles.size > 0) {
val buildDir = File(projectDir,
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")
@ -67,10 +76,17 @@ public class JavaPlugin @Inject constructor(
copyResources(project, JvmCompilerPlugin.SOURCE_SET_MAIN)
val projectDir = File(project.directory)
val sourceFiles = findSourceFiles(project.directory, project.sourceDirectories)
val buildDir = File(projectDir, project.buildDirectory + File.separator + "classes")
.apply { mkdirs() }
return javaCompiler.compile(project, context, project.compileDependencies, sourceFiles,
buildDir, compilerArgs)
val result =
if (sourceFiles.size > 0) {
val buildDir = File(projectDir, project.buildDirectory + File.separator + "classes")
.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"))
@ -83,7 +99,7 @@ public class JavaPlugin @Inject constructor(
javaCompiler.compile(project, context, testDependencies(project), sourceFiles,
buildDir, compilerArgs)
} else {
// No files to compile
warn("Couldn't find any tests to compile")
TaskResult()
}
return result

View file

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