How to configure the processResources task in a Gradle Kotlin build

gradle, gradle-kotlin-dsl, kotlin

Solution

I think task should look like:

Edit: According this comment in gradle/kotlin-dsl repository. Task configuration should work this way:

import org.gradle.language.jvm.tasks.ProcessResources

apply {
    plugin("java")
}

(tasks.getByName("processResources") as ProcessResources).apply {
    filesMatching("application.properties") {
        expand(project.properties)
    }
}

Which is pretty ugly. So i suggest following utility function for this purpose, until one upstream done:

configure<ProcessResources>("processResources") {
    filesMatching("application.properties") {
        expand(project.properties)
    }
}

inline fun <reified C> Project.configure(name: String, configuration: C.() -> Unit) {
    (this.tasks.getByName(name) as C).configuration()
}

Problem

I have the following in a groovy-based build script. How do I do the same in a kotlin-based script? ``` processResources { filesMatching('application.properties'){ expand(project.properties) } } ```

Original source