我试图运行一些包含指定配置的 gradle 命令,但收到错误消息“未找到名称为‘我尝试过的每个名称’的配置”。这通常是由于其中一个依赖项中缺少 build.gradle 文件引起的。果然我找到了违规项目:
Evaluating project ':libraries' using empty build file.
但是libraries其实并不是一个项目,它只是一个存放所有项目依赖的文件夹。 libraries目录和我的主工程在同一层,我的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
我在这里错过了什么?
最佳答案
这是由于您使用的语法所致。 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}")
}
关于android - 为什么gradle认为我的 'libraries'目录是一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25536478/