【问题标题】:gradle cannto find subproject of dependencygradle 找不到依赖的子项目
【发布时间】:2016-05-09 09:44:05
【问题描述】:

我有以下结构:

./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")

主项目/子项目/build.gradle

dependencies{
    compile project(':library')
}
  • 我可以很好地 gradle build libraryproject。
  • 我可以通过对 mainproject 的项目依赖来 gradle build libraryproject。
  • 无法构建主项目,原因是:Project with path: 'subproject_interfaces' could not be found in project ' library'

【问题讨论】:

标签: gradle


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2021-02-02
    • 2016-02-10
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    • 2015-04-23
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    相关资源
    最近更新 更多