Kotlin脚本为Gradle配置 – 传递参数不使用扩展名

我在项目中使用Kotlin脚本作为Gradle模块的配置。 我有一个自定义部署插件,在运行时为每个服务器实例配置。 我使用扩展从脚本传递参数插件,因为它是写在gradle文档 。

build.gradle.kts

 apply { plugin(DeployPlugin::class.java) } extensions.add("settingsExtension", {s: Server -> getSettings(s)}) fun getSettings(cfg: Server) = DeploySettings( //configure it with respect to cfg ) 

DeployPlugin.kt

 val settingsExtension = project.extensions.getByName("settingsExtension") as ((Server) -> DeploySettings) val settings = settingsExtension.invoke(currentServer) 

我不喜欢这种配置方式是我在每个模块配置添加扩展是样板代码。 除非我执行任务,否则我不知道它是否正确。 有没有其他方法可以将getSettings函数传递给插件代码? 谢谢。