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
函数传递给插件代码? 谢谢。
- 我的Kotlin项目无法解决Travis-CI上的依赖关系
- Gradle无法解析来自另一个模块的引用
- 在gradle kotlin中访问任务的属性
- 在build.gradle文件中的compileKotlin块会抛出错误“Could not find method compileKotlin()for arguments ”
- 升级到android gradle插件3.0.0+后,项目不会生成
- Allure在本地机器上生成空的报告页面
- Kotlin,Java,multidex,Dagger 2,Butterknife和Realm:transformClassesWithMargingForDebug:重复条目:org / jetbrains / annotations / NotNull.class
- 禁用在Gradle中使用'kotlin'包检查
- Android工作室kotlin插件错误