尝试运行grdle tasks
命令时出现以下错误
Evaluating project ':Project1' using empty build file.
Evaluating project ':Project2' using empty build file.
我有多项目构建
Main
|--Root
|----Project1
|----Project2
|--build
|----settings.gradle
|----build.gradle
|----sub-project.gradle
以下是我的settings.gradle
File modulesDir = new File("${rootProject.projectDir}/../Root").canonicalFile
modulesDir.eachFile {
include it.name
}
rootProject.children.each {
it.projectDir = new File(modulesDir, it.name)
it.buildFileName = './sub-project.gradle'
}
这条线不起作用
it.buildFileName = './sub-project.gradle'
sub-project.gradle没有分配给子项目。
有什么问题?如何将实际的构建文件分配给项目?
最佳答案
您的settings.gradle
应该包含带有:
的项目,例如,您可以将项目包括为
def modulesRoot = new File("$rootProject.projectDir.parentFile/Root")
File[] moduleDirs = modulesRoot.listFiles(new FileFilter() {
@Override
boolean accept(File path) {
return path.isDirectory()
}
})
moduleDirs.each {
include ":$it.name"
project(":$it.name").projectDir = new File(modulesRoot, it.name)
project(":$it.name").buildFileName = new File(settingsDir, 'sub-project.gradle')
}
另外,更常见的模式是在项目中包含
build.gradle
,该项目需要由sub-project.gradle
构建为此,创建文件
Root/Project1/build.gradle
并在该文件中添加apply from: "$project.rootProject.absolutePath/sub-project.gradle"
行然后将构建文件分配给项目是一种更好的方法
关于gradle - Gradle使用空的构建文件进行评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33477102/