mirror of
https://github.com/ethauvin/kobalt.git
synced 2025-04-26 08:27:12 -07:00
Compile directories, not files.
This commit is contained in:
parent
79fc7c4f70
commit
e1bf933384
1 changed files with 18 additions and 3 deletions
|
@ -15,6 +15,8 @@ import com.beust.kobalt.Jvm
|
||||||
import com.beust.kobalt.SystemProperties
|
import com.beust.kobalt.SystemProperties
|
||||||
import com.beust.kobalt.misc.log
|
import com.beust.kobalt.misc.log
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import java.nio.file.Paths
|
||||||
|
import java.util.*
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
|
|
||||||
|
@ -56,7 +58,8 @@ public class JavaPlugin @Inject constructor(
|
||||||
args.add("-classpath")
|
args.add("-classpath")
|
||||||
args.add(stringClasspath.joinToString(File.pathSeparator))
|
args.add(stringClasspath.joinToString(File.pathSeparator))
|
||||||
}
|
}
|
||||||
args.addAll(sourceFiles)
|
val compressed = sourcesToDirectories(sourceFiles, project.sourceSuffix)
|
||||||
|
args.addAll(compressed)
|
||||||
|
|
||||||
val pb = ProcessBuilder(args)
|
val pb = ProcessBuilder(args)
|
||||||
pb.directory(File(project.directory))
|
pb.directory(File(project.directory))
|
||||||
|
@ -65,7 +68,7 @@ public class JavaPlugin @Inject constructor(
|
||||||
// pb.redirectError(File("/tmp/kobalt-err"))
|
// pb.redirectError(File("/tmp/kobalt-err"))
|
||||||
// pb.redirectOutput(File("/tmp/kobalt-out"))
|
// pb.redirectOutput(File("/tmp/kobalt-out"))
|
||||||
val line = args.joinToString(" ")
|
val line = args.joinToString(" ")
|
||||||
log(1, " Compiling ${sourceFiles.size} files with classpath size ${cpList.size}")
|
log(1, " Compiling ${compressed.size} directories")
|
||||||
log(2, " Compiling $project:\n$line")
|
log(2, " Compiling $project:\n$line")
|
||||||
val process = pb.start()
|
val process = pb.start()
|
||||||
val errorCode = process.waitFor()
|
val errorCode = process.waitFor()
|
||||||
|
@ -74,6 +77,17 @@ public class JavaPlugin @Inject constructor(
|
||||||
else TaskResult(false, "There were errors")
|
else TaskResult(false, "There were errors")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Replace all the .java files with their directories + *.java in order to limit the
|
||||||
|
* size of the command line (which blows up on Windows if there are a lot of files).
|
||||||
|
*/
|
||||||
|
private fun sourcesToDirectories(sources: List<String>, suffix: String) : Collection<String> {
|
||||||
|
val dirs = HashSet(sources.map {
|
||||||
|
Paths.get(it).parent.toFile().path + File.separator + "*$suffix"
|
||||||
|
})
|
||||||
|
return dirs
|
||||||
|
}
|
||||||
|
|
||||||
@Task(name = TASK_JAVADOC, description = "Run Javadoc")
|
@Task(name = TASK_JAVADOC, description = "Run Javadoc")
|
||||||
fun taskJavadoc(project: Project) : TaskResult {
|
fun taskJavadoc(project: Project) : TaskResult {
|
||||||
val projectDir = File(project.directory)
|
val projectDir = File(project.directory)
|
||||||
|
@ -91,7 +105,8 @@ public class JavaPlugin @Inject constructor(
|
||||||
javadoc!!.absolutePath,
|
javadoc!!.absolutePath,
|
||||||
"-classpath", classpath.map { it.jarFile.get().absolutePath }.joinToString(File.pathSeparator),
|
"-classpath", classpath.map { it.jarFile.get().absolutePath }.joinToString(File.pathSeparator),
|
||||||
"-d", outputDir.absolutePath)
|
"-d", outputDir.absolutePath)
|
||||||
args.addAll(sourceFiles)
|
val compressed = sourcesToDirectories(sourceFiles, project.sourceSuffix)
|
||||||
|
args.addAll(compressed)
|
||||||
|
|
||||||
val pb = ProcessBuilder(args)
|
val pb = ProcessBuilder(args)
|
||||||
pb.directory(File(project.directory))
|
pb.directory(File(project.directory))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue