我有以下结构:
./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')
}
Project with path: 'subproject_interfaces' could not be found in project ' library'
答案 0 :(得分:0)
您误解了多项目功能
在一个多项目构建中,您完全具有一个 settings.gradle
,并且您必须构建整个项目树。
您无法从主要版本settings.gradle
委托给版本库settings.gradle
如果你想这样工作,你还必须在主要版本的settings.gradle
中包含库项目的子项目。
或者,您可以通过坐标依赖库并将库部署到某个存储库,如mavenLocal()
,但当然,如果您构建主项目,则库项目不会自动重建,但您必须手动( vai gradle任务)部署库工件。
或者,您也可以使用GradleBuild类型的任务调用库构建,然后依赖于该构建的输出。然后,库构建仍然是一个完整的Gradle构建,它只是由您的主构建触发。