如何在Gradle Kotlin构建中配置processResources任务
我有一个基于groovy的构建脚本中的以下内容。 如何在基于kotlin的脚本中执行相同的操作?
processResources { filesMatching('application.properties'){ expand(project.properties) } }
我认为任务应该是这样的:
编辑 :根据这个评论在gradle / kotlin-dsl存储库。 任务配置应该这样工作:
import org.gradle.language.jvm.tasks.ProcessResources apply { plugin("java") } (tasks.getByName("processResources") as ProcessResources).apply { filesMatching("application.properties") { expand(project.properties) } }
这是非常丑陋的。 所以我建议为此目的下面的效用函数,直到一个上游完成:
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() }
通过更新Kotlin DSL和Gradle的更新版本,您可以执行如下操作:
import org.gradle.language.jvm.tasks.ProcessResources plugins { java } tasks { "processResources"(ProcessResources::class) { filesMatching("application.properties") { expand(project.properties) } } }
并且:
val processResources by tasks.getting(ProcessResources::class) { filesMatching("application.properties") { expand(project.properties) } }
- 如何为TestNG Kotlin项目添加gradle支持?
- 在库模块中使用Kotlin,而不在app模块中使用它
- 在kotlin / spring引导中使用Gradle属性扩展
- 使用Gradle无法构建Android应用程序(使用Kotlin):“comand'java.exe'以非零退出值1结束”
- Android Studio 3.0 Canary 1:Gradle同步错误
- 将源文件附加到kotlin库项目不会显示在AS中
- Gradle不会导入bintray依赖项,但不会引发任何错误
- 如何把项目的res文件放到同一个文件夹的jar文件中?
- Android Studio gradle项目(不是android项目),同步使gradle库丢失