gradle cannto找到依赖项的子项目

时间:2016-05-09 09:44:05

标签: gradle

我有以下结构:

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

libraryproject / settings.gralde:

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

libraryproject /的build.gradle

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

mainproject / settings.gradle

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

mainproject /子项目/的build.gradle

dependencies{
    compile project(':library')
}
  • 我可以很好地建立libraryproject。
  • 我可以通过mainproject上的项目依赖关系来构建libraryproject。
  • 由于Project with path: 'subproject_interfaces' could not be found in project ' library'
  • ,我无法构建主项目

1 个答案:

答案 0 :(得分:0)

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

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