mirror of
https://github.com/ethauvin/kobalt.git
synced 2025-04-26 08:27:12 -07:00
Allow multiple install{} tags.
Fixes https://github.com/cbeust/kobalt/issues/430.
This commit is contained in:
parent
5b1c9150a5
commit
ba6ab5592e
1 changed files with 18 additions and 10 deletions
|
@ -26,9 +26,9 @@ class PackagingPlugin @Inject constructor(val dependencyManager : DependencyMana
|
||||||
val executors: KobaltExecutors, val jarGenerator: JarGenerator, val warGenerator: WarGenerator,
|
val executors: KobaltExecutors, val jarGenerator: JarGenerator, val warGenerator: WarGenerator,
|
||||||
val zipGenerator: ZipGenerator, val taskContributor: TaskContributor,
|
val zipGenerator: ZipGenerator, val taskContributor: TaskContributor,
|
||||||
val kobaltLog: ParallelLogger,
|
val kobaltLog: ParallelLogger,
|
||||||
val pomFactory: PomGenerator.IFactory, val configActor: ConfigActor<InstallConfig>)
|
val pomFactory: PomGenerator.IFactory, val configActor: ConfigsActor<InstallConfig>)
|
||||||
: BasePlugin(), ITaskContributor, IIncrementalAssemblyContributor,
|
: BasePlugin(), ITaskContributor, IIncrementalAssemblyContributor,
|
||||||
IConfigActor<InstallConfig> by configActor {
|
IConfigsActor<InstallConfig> by configActor {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val PLUGIN_NAME = "Packaging"
|
const val PLUGIN_NAME = "Packaging"
|
||||||
|
@ -56,9 +56,20 @@ class PackagingPlugin @Inject constructor(val dependencyManager : DependencyMana
|
||||||
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) })
|
||||||
taskContributor.addVariantTasks(this, project, context, "install",
|
|
||||||
dependsOn = listOf("assemble"),
|
configurationFor(project)?.let { configs ->
|
||||||
runTask = { taskInstall(project) })
|
configs.forEach { config ->
|
||||||
|
taskManager.addTask(this, project, config.taskName,
|
||||||
|
description = "Install to \"" + config.target + "\"",
|
||||||
|
group = "build",
|
||||||
|
dependsOn = listOf(PackagingPlugin.TASK_ASSEMBLE),
|
||||||
|
task = { taskInstall(project, context, config) })
|
||||||
|
taskContributor.addVariantTasks(this, project, context, "config.taskName",
|
||||||
|
dependsOn = listOf("assemble"),
|
||||||
|
runTask = { taskInstall(project, context, config) })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun assemble(project: Project, context: KobaltContext) : IncrementalTaskInfo {
|
override fun assemble(project: Project, context: KobaltContext) : IncrementalTaskInfo {
|
||||||
|
@ -207,10 +218,7 @@ class PackagingPlugin @Inject constructor(val dependencyManager : DependencyMana
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
@Task(name = PackagingPlugin.TASK_INSTALL, description = "Install the artifacts",
|
private fun taskInstall(project: Project, context: KobaltContext, config: InstallConfig) : TaskResult {
|
||||||
dependsOn = arrayOf(PackagingPlugin.TASK_ASSEMBLE))
|
|
||||||
fun taskInstall(project: Project) : TaskResult {
|
|
||||||
val config = configurationFor(project) ?: InstallConfig()
|
|
||||||
val buildDir = project.projectProperties.getString(LIBS_DIR)
|
val buildDir = project.projectProperties.getString(LIBS_DIR)
|
||||||
val buildDirFile = File(buildDir)
|
val buildDirFile = File(buildDir)
|
||||||
if (buildDirFile.exists()) {
|
if (buildDirFile.exists()) {
|
||||||
|
@ -254,7 +262,7 @@ fun Project.install(init: InstallConfig.() -> Unit) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class InstallConfig(var target : String = "libs") : IncludeFromTo()
|
class InstallConfig(var target : String = "libs", var taskName : String = "install") : IncludeFromTo()
|
||||||
|
|
||||||
@Directive
|
@Directive
|
||||||
fun Project.assemble(init: PackageConfig.(p: Project) -> Unit): PackageConfig = let {
|
fun Project.assemble(init: PackageConfig.(p: Project) -> Unit): PackageConfig = let {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue