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

GH-393: run now runs from the project's directory.

Fixes https://github.com/cbeust/kobalt/issues/393
This commit is contained in:
Cedric Beust 2017-04-07 19:06:48 -07:00
parent a50d349fd6
commit cb7a8a5fb8
2 changed files with 19 additions and 16 deletions

View file

@ -93,10 +93,12 @@ class KFiles {
*/ */
fun joinDir(vararg ts: String): String = ts.toMutableList().joinToString(File.separator) fun joinDir(vararg ts: String): String = ts.toMutableList().joinToString(File.separator)
val LIBS_DIR = "libs"
/** /**
* Where assemblies get generated ("kobaltBuild/libs") * Where assemblies get generated ("kobaltBuild/libs")
*/ */
fun libsDir(project: Project): String = KFiles.makeDir(KFiles.buildDir(project).path, "libs").path fun libsDir(project: Project): String = KFiles.makeDir(KFiles.buildDir(project).path, LIBS_DIR).path
/** /**
* The paths elements are expected to be a directory. Make that directory and join the * The paths elements are expected to be a directory. Make that directory and join the

View file

@ -10,8 +10,8 @@ import com.beust.kobalt.maven.DependencyManager
import com.beust.kobalt.maven.aether.Scope import com.beust.kobalt.maven.aether.Scope
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.RunCommand
import com.beust.kobalt.misc.kobaltLog import com.beust.kobalt.misc.kobaltLog
import com.beust.kobalt.misc.runCommand
import com.beust.kobalt.plugin.packaging.PackageConfig import com.beust.kobalt.plugin.packaging.PackageConfig
import com.beust.kobalt.plugin.packaging.PackagingPlugin import com.beust.kobalt.plugin.packaging.PackagingPlugin
import com.google.inject.Inject import com.google.inject.Inject
@ -106,10 +106,8 @@ class ApplicationPlugin @Inject constructor(val configActor: ConfigActor<Applica
?: project.projectProperties.get(Archives.JAR_NAME)?.toString() ?: project.projectProperties.get(Archives.JAR_NAME)?.toString()
?: throw KobaltException("Couldn't find any jar file with a main class in it") ?: throw KobaltException("Couldn't find any jar file with a main class in it")
val jarFileName = KFiles.joinDir(KFiles.libsDir(project), fileName) // The application will run in the project's directory, so we don't need to add project.directory here
val jarName = (jarFileName ?: KFiles.joinDir(KFiles.libsDir(project), val jarName = KFiles.joinDir(project.buildDirectory, KFiles.LIBS_DIR, fileName)
context.variant.archiveName(project, null, ".jar")))
as String
@Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST")
val packages = project.projectProperties.get(PackagingPlugin.PACKAGES) as List<PackageConfig> val packages = project.projectProperties.get(PackagingPlugin.PACKAGES) as List<PackageConfig>
val allDeps = arrayListOf(jarName) val allDeps = arrayListOf(jarName)
@ -131,16 +129,19 @@ class ApplicationPlugin @Inject constructor(val configActor: ConfigActor<Applica
val contributorFlags = context.pluginInfo.jvmFlagContributors.flatMap { val contributorFlags = context.pluginInfo.jvmFlagContributors.flatMap {
it.jvmFlagsFor(project, context, initialArgs) it.jvmFlagsFor(project, context, initialArgs)
} }
val args = contributorFlags + initialArgs + config.args val allArgs = contributorFlags + initialArgs + config.args
val exitCode = RunCommand(java.absolutePath).run(args, val exitCode = runCommand {
successCallback = { output: List<String> -> command = "java"
kobaltLog(1, output.joinToString("\n")) args = allArgs
}, directory = File(project.directory)
errorCallback = { output: List<String> -> successCallback = { output: List<String> ->
kobaltLog(1, "ERROR") kobaltLog(1, output.joinToString("\n"))
kobaltLog(1, output.joinToString("\n")) }
} errorCallback = { output: List<String> ->
) kobaltLog(1, "ERROR")
kobaltLog(1, output.joinToString("\n"))
}
}
return TaskResult(exitCode == 0) return TaskResult(exitCode == 0)
} }