【发布时间】:2020-10-30 08:24:35
【问题描述】:
我有几个最初只在 buildSrc 中使用的类。但现在我在子项目 A2 中也需要它们。
| - rootProject A
| - buildSrc
| - subproject A1
| - subproject A2
- 选项 1. 将这些类保留在 buildSrc 中并尝试将
implementation(":buildSrc")添加到 A2 的依赖项中。不幸的是,它没有用。我无法链接到 buildSrc,gradle 说“项目 A 中没有 'buildSrc' 子项目”。 - 选项 2。在子项目 A2 中使用
implementation(files("${project.rootDir}/buildSrc/build/classes/"))效果不佳。它会构建,但在 A2 的源代码中无法访问 buildSrc 中的类。 - 选项 3。好的。让我们在新的子项目 A3 中提取这些类。在这里,再次失败。 buildSrc 不能依赖 A 的任何项目。否则就是循环依赖。
- 选项 4。那么,我们可以将其提取到单独的 rootProject B 并创建复合构建。在 A 的
settings.gradle.kts中,我输入了includeBuild("B")。再说一次,我可以在 A2 中将它用作implementation("mygroup:B")并且不能在 buildSrc 中使用它:Could not find mygroup:B.\n Required by:\n project :
那么,我还有哪些选择?还是我之前的尝试做错了什么?
【问题讨论】:
标签: gradle