1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-25 07:57: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)
val LIBS_DIR = "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

View file

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