您好我的 buildSrc 目录中我有两个单独的项目,让我们将它们命名为一个和两个。 我在 buildSrc 目录中添加 build.gradle 和 settings.gradle 文件,并在其中写道: 的 settings.gradle
include \
"one",
"two"
但是当我尝试使用这些项目提供的一些插件时,Gradle说无法找到这些导入。我搜索了simmilar问题,发现我必须在buildSrc中编写 build.gradle 文件:
dependencies {
runtime subprojects.collect { owner.project(it.path) }
}
这条线是什么意思?为什么我要添加它? BuildSrc 会在类路径上自动添加已归档的类,或者我错了?
答案 0 :(得分:3)
Gradle自动将“buildSrc项目”及其运行时依赖项放在buildscript类路径上,但不会自动将buildSrc的子项目放在buildscript类路径上。
如果您有如上所述的多项目构建,则buildSrc是根项目,但您的自定义逻辑位于子项目中。现在当gradle将buildSrc.jar放在buildscript类路径上时,它或多或少是空的。
摘录
dependencies {
runtime subprojects.collect { owner.project(it.path) }
}
将所有子项目作为运行时依赖项添加到根buildSrc项目中。这应该可以解决您的问题,因为Gradle将buildSrc AND 的运行时依赖项放在buildscript类路径上。