我有以下结构:
./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')
}
带有路径的项目:在项目“库”中找不到“subproject_interfaces”
您误解了多项目功能。
在一个多项目构建中,您只有一个settings. gradle
,并且您必须在那里构建整个项目树。
您不能从主构建settings.gradle
委托给库构建settings.gradle
。
如果您想这样工作,您还必须在主构建的settings.gradle
中包含库项目的子项目。
或者,您可以通过坐标依赖库并将库部署到某个存储库,例如mavenLocal()
,但当然,如果您构建主构建,库项目不会自动重建项目,但您必须手动(vai gradle task)部署库工件。
或者,您也可以使用GradleBuild类型的任务调用库构建,然后依赖于该构建的输出。然后库构建仍然是一个完整的自己的Gradle构建,它只是由您的主构建触发的。