Gradle复合构建-您可以从包含的多项目构建中依赖java子项目吗?

Gradle复合构建-您可以从包含的多项目构建中依赖java子项目吗?,java,gradle,build,dependencies,Java,Gradle,Build,Dependencies,假设你有两个gradle项目。第一个是一个包含两个java子项目的多项目: rootProject :my:subProject1 :myother:subProject2 第二个gradle项目是单个项目,包括ILD的根项目: secondProject includeBuild '../rootProject' 我想将:my:subProject1的编译依赖项编译到secondProject中 因此,基本上我想将以下内容添加到secondProject的build

假设你有两个gradle项目。第一个是一个包含两个java子项目的多项目:

rootProject
    :my:subProject1
    :myother:subProject2
第二个gradle项目是单个项目,包括ILD的根项目:

secondProject
    includeBuild '../rootProject'
我想将:my:subProject1的编译依赖项编译到secondProject中

因此,基本上我想将以下内容添加到secondProject的build.gradle文件中:

dependency {
    compile(project(':my:subProject1')) 
}
当我尝试执行此操作时,它返回错误:带有路径的项目:在根项目“secondProject”中找不到my:subProject1


我似乎只有在以group:artifact:version的形式进行依赖时才能解决依赖关系。例如:my.root.project:subProject1:1.0.0。但为什么它会让我这么做?为什么不让我访问复合构建的项目层次结构?

这就是这些复合构建的工作方式。它们基本上就像您在包含其他项目之前将其发布给maven local一样。因此,这意味着您需要依赖于拆分项目的版本号

根目录上只能存在一个settings.gradle,请删除所有子文件夹中的setting.gradle文件

在根文件夹的settings.gradle文件中定义项目

include ':sub1', ':sub2', ':sub3'
将compile project:sub1添加到依赖项块下的build.gradle中:

dependencies{
  compile project(":sub1")
}