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

Bug when running a variant package.

Fixes https://github.com/cbeust/kobalt/issues/202
This commit is contained in:
Cedric Beust 2016-05-22 23:20:06 -08:00
parent 26bc3a842e
commit e166cf1288
2 changed files with 9 additions and 4 deletions

View file

@ -9,6 +9,7 @@ import com.beust.kobalt.archive.Jar
import com.beust.kobalt.internal.ActorUtils import com.beust.kobalt.internal.ActorUtils
import com.beust.kobalt.internal.JvmCompilerPlugin import com.beust.kobalt.internal.JvmCompilerPlugin
import com.beust.kobalt.maven.DependencyManager import com.beust.kobalt.maven.DependencyManager
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.RunCommand
import com.beust.kobalt.misc.warn import com.beust.kobalt.misc.warn
@ -86,7 +87,7 @@ class ApplicationPlugin @Inject constructor(val configActor: ConfigActor<Applica
var result = TaskResult() var result = TaskResult()
configurationFor(project)?.let { config -> configurationFor(project)?.let { config ->
if (config.mainClass != null) { if (config.mainClass != null) {
result = runJarFile(project, config) result = runJarFile(project, context, config)
} else { } else {
throw KobaltException("No \"mainClass\" specified in the application{} part of project ${project.name}") throw KobaltException("No \"mainClass\" specified in the application{} part of project ${project.name}")
} }
@ -94,8 +95,11 @@ class ApplicationPlugin @Inject constructor(val configActor: ConfigActor<Applica
return result return result
} }
private fun runJarFile(project: Project, config: ApplicationConfig) : TaskResult { private fun runJarFile(project: Project, context: KobaltContext, config: ApplicationConfig) : TaskResult {
val jarName = project.projectProperties.get(Archives.JAR_NAME) as String val jarFileName = project.projectProperties.get(Archives.JAR_NAME)
val jarName = (jarFileName ?: KFiles.joinDir(KFiles.libsDir(project),
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)

View file

@ -48,6 +48,8 @@ class PackagingPlugin @Inject constructor(val dependencyManager : DependencyMana
override fun apply(project: Project, context: KobaltContext) { override fun apply(project: Project, context: KobaltContext) {
super.apply(project, context) super.apply(project, context)
project.projectProperties.put(LIBS_DIR, KFiles.libsDir(project)) project.projectProperties.put(LIBS_DIR, KFiles.libsDir(project))
project.projectProperties.put(PACKAGES, packages)
taskContributor.addVariantTasks(this, project, context, "assemble", group = "build", taskContributor.addVariantTasks(this, project, context, "assemble", group = "build",
dependsOn = listOf("compile"), dependsOn = listOf("compile"),
runTask = { doTaskAssemble(project) }) runTask = { doTaskAssemble(project) })
@ -64,7 +66,6 @@ class PackagingPlugin @Inject constructor(val dependencyManager : DependencyMana
override fun assemble(project: Project, context: KobaltContext) : IncrementalTaskInfo { override fun assemble(project: Project, context: KobaltContext) : IncrementalTaskInfo {
return IncrementalTaskInfo({ null }, { null }, { project -> return IncrementalTaskInfo({ null }, { null }, { project ->
try { try {
project.projectProperties.put(PACKAGES, packages)
packages.filter { it.project.name == project.name }.forEach { pkg -> packages.filter { it.project.name == project.name }.forEach { pkg ->
pkg.jars.forEach { jarGenerator.generateJar(pkg.project, context, it) } pkg.jars.forEach { jarGenerator.generateJar(pkg.project, context, it) }
pkg.wars.forEach { warGenerator.generateWar(pkg.project, context, it) } pkg.wars.forEach { warGenerator.generateWar(pkg.project, context, it) }