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:
parent
946f2ffed5
commit
12ad40edd0
2 changed files with 51 additions and 23 deletions
|
@ -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
|
||||||
|
|
|
@ -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>,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue