Gradle使用空构建文件进行评估

时间:2015-11-02 11:59:20

标签: gradle

尝试运行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'  

子项目.gradle未被分配到子项目。

问题是什么?如何将实际构建文件分配给项目?

1 个答案:

答案 0 :(得分:0)

您的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"

这是一种更好的方法,然后将构建文件分配给项目