gpt4 book ai didi

Gradle kotlin如何调用父级中定义的函数?

转载 作者:行者123 更新时间:2023-12-02 12:02:45 25 4
gpt4 key购买 nike

使用 gradle 多模块项目时,是否可以在父项目中定义函数但在子模块 build.gradle.kts 中使用它们?

请注意,我不需要使用字符串注册和调用的无类型任务...我希望将实际的类型安全代码共享给子模块。

理想情况下,无需创建插件或使用 buildSrc。

从 parent build.gradle.kts 到所有子模块共享一个类的最重要的方法是什么?

注意:这与通过外部共享封闭槽不同......你失去了类型安全,我要求的是子模块方面的类型安全。

最佳答案

我在想没有办法。当 Kotlin 构建脚本被编译时,它将最终成为一个名为 Build_gradle 的类。在扩展 CompiledKotlinBuildScript 的默认包(即空包)中.任何在脚本中定义的类都会在其对应的 Build_gradle 中成为公共(public)嵌套类。 .当子项目构建脚本被编译时,它无法访问包含父项目构建脚本的类路径。这是有道理的,因为会有多个 Build_gradle相同(默认)包中的文件。

我会去 buildSrc , 来解决问题,但我推测您还想要在多模块项目中实现某种良好的关注点分离,而不是让不相关的项目知道其他人需要沟通什么。您可以采取的措施来最大限度地减少暴露,只将 API(接口(interface)、数据类)保留在 buildSrc 中。并拥有 script plugin在父项目中提供实现。

关于Gradle kotlin如何调用父级中定义的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57690789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com