我正在尝试运行一些包含指定配置的gradle命令,但却出现错误,并说明了#34;配置名称'我尝试的每个名字'没找到。"这通常是由其中一个依赖项中缺少build.gradle文件引起的。果然我发现了违规项目:
Evaluating project ':libraries' using empty build file.
但是库实际上不是一个项目,它只是包含所有项目依赖项的文件夹。 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
我在这里缺少什么?
答案 0 :(得分:3)
这是由于您使用的语法。 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}")
}