use managed objects, allow caching, require less config

This commit is contained in:
Lucwousin
2020-06-28 07:27:28 +02:00
parent 4d0057291f
commit 6ffdffa0d9
4 changed files with 51 additions and 53 deletions

View File

@@ -11,17 +11,18 @@ import org.gradle.api.Plugin
import org.gradle.api.Project
class InjectPlugin: Plugin<Project> {
override fun apply(project: Project) {
val extension = project.extensions.create("injector", Injextention::class.java, project)
override fun apply(project: Project) { with(project) {
val task = tasks.create("inject", Inject::class.java)
task.output.convention { file("$buildDir/libs/$name-$version.jar") }
project.tasks.create("inject", Inject::class.java) {
it.vanilla.set(extension.vanilla)
it.rsclient.set(extension.rsclient)
it.mixins.set(extension.mixins)
it.rsapi.set(extension.rsapi)
if (extension.output.isPresent) {
it.output.set(extension.output)
}
artifacts {
it.add("runtimeElements", task.output)
}
}
tasks.getByName("assemble") {
it.finalizedBy("inject")
}
extensions.add(InjectExtension::class.java, "injector", task.extension)
}}
}