提问者:小点点

gradle canto查找依赖的子项目


我有以下结构:

./mainproject/
    -settings.gradle
    -build.gradle
    -subproject/
        -build.gradle
        -/src/...
./libraryproject
    -settings.gradle
    -build.gradle
    -subproject_interfaces/
        -build.gradle
        -src/...
    -subproject_impl/
        -build.gradle
        -src/...

图书馆项目/设置。gral de:

rootProject.name = 'library'
include 'subproject_interfaces','subproject_impl'

图书馆项目/build. g radle

dependencies {
    compile project(':subproject_interfaces')
    compile project(':subprojects_impl')
}

主项目/settings. g radle

include "library"
project(':library').projectDir = new File(settingsDir,"../libraryproject")

主项目/子项目/build. g radle

dependencies{
    compile project(':library')
}
  • 我可以很好地构建图书馆项目。
  • 我可以通过对main project的项目依赖来gradle构建库项目。
  • 我无法构建main project,原因是:带有路径的项目:在项目“库”中找不到“subproject_interfaces”

共1个答案

匿名用户

您误解了多项目功能。
在一个多项目构建中,您只有一个settings. gradle,并且您必须在那里构建整个项目树。
您不能从主构建settings.gradle委托给库构建settings.gradle
如果您想这样工作,您还必须在主构建的settings.gradle中包含库项目的子项目。
或者,您可以通过坐标依赖库并将库部署到某个存储库,例如mavenLocal(),但当然,如果您构建主构建,库项目不会自动重建项目,但您必须手动(vai gradle task)部署库工件。

或者,您也可以使用GradleBuild类型的任务调用库构建,然后依赖于该构建的输出。然后库构建仍然是一个完整的自己的Gradle构建,它只是由您的主构建触发的。