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

标签 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'  

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/

相关文章:

android - 错误:找不到com.android.tools.build:gradle:3.1.4。需要的人:com.jakewharton:butterknife-gradle-plugin:10.1.0

intellij-idea - SonarQube无法测量使用PowerMockito运行的单元测试

android - 如何将Android Gradle项目依赖项下载到自定义文件夹?

java - Eclipse Mars保存后始终无法解决导入问题,但是仅清理项目就可以解决

java - 将模块中的 Iframe 添加为 liferay 7 中的 portlet

java - 纯java模块中的StringDef?

Android 库 : Release . aar 在使用混淆器时将 classes.jar 清空

java - 依赖项(Jar 文件)中的类未解析,导致编译错误

android - 警告 :Dependency org. json:json:20090211 被忽略以进行调试,因为它可能与 Android 提供的内部版本冲突

qt - Gradlew 抛出 java.net.SocketException