【问题标题】:Why does gradle think my 'libraries' directory is a project为什么 gradle 认为我的“库”目录是一个项目
【发布时间】:2014-10-21 14:07:26
【问题描述】:

我试图运行一些包含指定配置的 gradle 命令,但收到错误消息,指出“未找到名称为‘我尝试过的每个名称’的配置。”这通常是由其中一个依赖项中缺少 build.gradle 文件引起的。果然我找到了有问题的项目:

Evaluating project ':libraries' using empty build file.

但库实际上并不是一个项目,它只是包含所有项目依赖项的文件夹。库目录和我的主项目在同一级,我的settings.gradle文件是:

include ':libraries:some-sdk'
include ':libraries:another-sdk'

我在 build.gradle 中的依赖项是:

dependencies {
    compile project(':libraries:some-sdk')
    compile project(':libraries:another-sdk')
    compile files('libs/some-library.jar')
    compile 'some-maven-repo:some-artifact:X.X.X'
}

我还使用 commonsware 的多项目演示重现了该问题:https://github.com/commonsguy/cw-omnibus/tree/master/Gradle/HelloMultiProject

我在这里错过了什么?

【问题讨论】:

    标签: android configuration gradle dependencies


    【解决方案1】:

    这是由于您使用的语法。 Gradle 将:libraries 解释为一个项目,它是您的“sdk”项目的父级。如果您希望这两个项目有效地直接位于根项目下,但仍存在于子目录中,您可以显式指定projectDir

    将您的 settings.gradle 更改为如下所示:

    def String[] modules = ['some-sdk', 'another-sdk']
    
    include modules
    
    modules.each { name ->
        def p = findProject(":${name}")
        p.projectDir = new File("libraries/${name}")
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-31
      • 1970-01-01
      • 2016-08-22
      • 1970-01-01
      • 2019-06-25
      • 1970-01-01
      • 1970-01-01
      • 2023-01-13
      相关资源
      最近更新 更多