如何在Gradle中的buildSrc目录中导入多项目构建?

时间:2014-06-02 08:43:50

标签: plugins gradle

您好我的 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 会在类路径上自动添加已归档的类,或者我错了?

1 个答案:

答案 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类路径上。