Gradle无法检测平面依赖关系

Gradle无法检测平面依赖关系,gradle,Gradle,我有一个多项目的Gradle构建(Gradle4.4)。 我遇到了以下问题 假设我有一个proj1项目,其build.gradle如下: repositories { flatDir { dirs 'libs' } } dependencies { compile name: 'lombok-edge' } proj1的libs文件夹带有lombok-edge.jar。项目建设成功。 我有导入proj1的proj2: dependencies {

我有一个多项目的Gradle构建(Gradle4.4)。 我遇到了以下问题

假设我有一个proj1项目,其build.gradle如下:

repositories {
   flatDir {
       dirs 'libs'
   }
}

dependencies {
       compile name: 'lombok-edge'
}
proj1的libs文件夹带有lombok-edge.jar。项目建设成功。 我有导入proj1的proj2:

dependencies {
    compile project(':proj1')
}
当我尝试构建整个项目时,proj1已构建,但Gradle未能构建proj2,出现错误:

  • 出了什么问题: 无法解析配置的所有文件:proj2:compileClasspath。 找不到:lombok边缘:。 要求: 项目:proj2>项目:proj1


请给出建议。

好吧,Gradle支持可传递的依赖项,但是获取依赖项(以及因此而产生的任何存储库信息)的方法是不可传递的。Gradle(像Maven一样)不关心依赖项来自何处,只要它匹配给定的签名(组、id、版本)

在您的示例中,project 1定义了一个Maven依赖项,并可以通过给定的
flatDir
存储库来解析它。项目2依赖于项目1(由Gradle解决)和可传递的Maven依赖。project 2负责解决此依赖关系,它将检查任何已定义的存储库,但找不到它,因为本地存储库是未知的。这就是构建失败的原因

如果这两个项目是相关的(如果它们都是多项目生成的一部分,那么它们应该是相关的),那么您应该在顶级
build.gradle
文件和
子项目
闭包中定义本地存储库