Gradle:找不到名称为“default”的配置。

5
我试图将一个外部gradle项目(Lib-2)的依赖项添加到另一个gradle项目(Lib-1)中,在其中一个模块(Project-1)中使用。当尝试同步Lib-1时,我收到以下错误信息:

找不到名称为“default”的配置。

虽然我知道这个错误通常是由缺少build.gradle文件引起的,但如下所示,两个文件都有相关的gradle文件。
- Containing File 
  | Lib-1
     |build.gradle
     |settings.gradle
     |Module-1
        |src
        |build.gradle
  | Lib-2
     |build.gradle
     |settings.gradle
     |Module-2
        |src
        |build.gradle
Lib-1settings.gradle 文件
include 'Module-2'
include ':Lib-2'
project(':Lib-2').projectDir = new File(rootDir,'../Lib-2')

Module-1build.gradle 文件中的依赖关系

dependencies {
    compile project(':Lib-2')
}

运行"build --info"命令会得到以下信息。
开始构建 使用设置文件'/Users/$user/Containing File/Lib-1/settings.gradle'进行设置评估。 项目已加载。根项目使用构建文件'/Users/$user/Containing File/Lib-1/build.gradle'。 包括的项目:[根项目'Lib-1',项目':Lib-2',项目':Module-1'] 使用构建文件'/Users/$user/Containing File/Lib-1/build.gradle'评估根项目'Lib-1'。 使用构建文件'/Users/$user/Containing File/Lib-2/build.gradle'评估项目':Lib-2'。 使用构建文件'/Users/$user/Containing File/Lib-1/Module-1/build.gradle'评估项目':Module-1'。 发布版本构建 所有项目都已评估。 从项目<:>中选择主任务'build'。 构建失败,出现以下异常。
  • 错误原因: 无法确定任务':Module-1:javadoc'的依赖关系。 找不到名称为'default'的配置。

为什么你没有在Lib-1的settings.gradle中设置module-2的projectDir呢? - RaGe
1个回答

1
当添加依赖项时,这个错误通常意味着你添加的新项目未找到。在这种情况下,是因为虽然你将其添加到了主要库设置文件中,但该模块并不包含该设置。
你可以有两种方式: 1. 为每个库都有一个build.gradle文件,并在其中定义每个模块。然后,通过同一构建文件编译每个模块(如果您想分别编译)。 2. 使用多项目设置 - 您将能够从模块文件夹进行编译,但需要另一个设置文件。
由于这是一个模块而不是多项目,选项1似乎是正确的方式。只需为每个模块添加一个配置,并设置适当的依赖关系等。类似于这样:
configurations {
 module1
 module2
}

sourceSets{ 
 module1 {
     java {
         srcDir 'src/module1'
     }
 }

 module2 {
     java {
         srcDir 'src/module2'
     }
 }
}

dependencies {
 module1 'some.dependency'
 module2 'some.other.dependenty'
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接