vac*_*ach 7 build gradle kotlin gradle-kotlin-dsl
使用 gradle 多模块项目时,是否可以在父项目中定义函数但在子模块 build.gradle.kts 中使用它们?
请注意,我不需要使用字符串注册和调用的无类型任务......我希望将实际的类型安全代码共享给子模块。
理想情况下不创建插件或使用 buildSrc。
从父级 build.gradle.kts 到所有子模块共享类的最重要方式是什么?
注意:这与通过 ext 共享闭包不同......你失去了类型安全,我要求的是子模块方面的类型安全。
我想也没有什么办法吧。当 Kotlin 构建脚本被编译时,它将最终作为Build_gradle扩展的默认包(即空包)中调用的类CompiledKotlinBuildScript。脚本中定义的任何类都会成为其相应Build_gradle. 当子项目构建脚本被编译时,它无法访问包含父项目构建脚本的类路径。Build_gradle这是有道理的,因为同一个(默认)包中会有多个文件。
我会选择buildSrc, 来解决问题,但我推测您还想要在多模块项目中实现某种良好的关注点分离,而不是让不相关的项目知道其他项目需要沟通的内容。为了最大限度地减少暴露,您可以做的就是仅保留 API(接口、数据类)buildSrc,并在父项目中使用脚本插件来提供实现。
| 归档时间: |
|
| 查看次数: |
839 次 |
| 最近记录: |