在多项目设置中找不到Gradle依赖项?

时间:2014-04-10 06:08:16

标签: gradle build.gradle

我有像这样的项目设置

+ rootProject
    + module1
       + src
         build.gradle
    + module2
       + src
         build.gradle
    + src
      build.gradle
      settings.gradle

rootProject/build.gradle

的内容
evaluationDependsOn(':module1')

apply plugin: 'java'

dependencies {
  compile project(':module1')
  compile project(':module2')
}


task myTask (type: JavaExec) {
    main = 'org.gradle.example.Test.Main'
    classpath runtimeClasspath
  }

module1/build.gradle

的内容
apply plugin: 'java'

repositories { 
  mavenCentral() 
}

dependencies { 
  compile 'commons-codec:commons-codec:1.9' 
}

module2/build.gradle

的内容
apply plugin: 'java'

依赖关系图

root --> module1 --> commons-codec
     --> module2

gradle在构建时使用根文件夹中的命令gradle build

报告此情况
Could not resolve all dependencies for configuration ':compile'.
> Could not find commons-codec:commons-codec:1.9. Required by:
      :rootProject:unspecified > rootProject:codec:unspecified

如果我在rootProject的构建文件中添加dependencies块,它就会正常构建。 如您所见,我已经确定了module1构建文件中的依赖项。为什么gradle继续说它无法解决?

我是否需要将子模块的所有依赖项放在根构建文件中?

1 个答案:

答案 0 :(得分:1)

首先,我看到您在多模块项目中缺少settings.gradle文件。您需要在rootProject/build.gradle所在的级别创建它。

内容应为

include 'module1', 'module2'

<强>更新

好的,添加以下代码的根build.gradle

allprojects {
    repositories {
        mavenCentral()
    }
}

已从module1/build.gradle repositories部分移除。现在它有效。获取并显示依赖关系。目前不知道解释是什么。