gradle - Gradle 任务写入文件时出现问题

标签 gradle android-studio android-gradle-plugin

我正在开发一个 Android 应用程序,其中有一个 JSON 文件目录,我想创建一个 gradle 任务,将所有这些文件合并到一个 JSON 文件中。

这是我到目前为止的 gradle 任务,但没有创建文件:

// Task that combines all JSON files in ../libraries into src/main/res/raw/libraries.json
task combineJSonFiles {
    String content = ""
    FileTree tree = fileTree(dir: '../libraries', include: '**/*.json')
    tree.each {File file ->
        content += file.getText()
    }

    println "[" + content.substring(0, content.length()-1) + "]" // prints out the correct contents
    File libraries = file("../app/src/main/res/raw/libraries.json")
    println libraries.getProperties()
}

我打印出属性,但我不确定为什么这些是属性值:

{directory=false, canonicalFile=/Users/michaelcarrano/AndroidStudioProjects/detective_droid/app/src/main/res/raw/libraries.json, file=false, freeSpace=0, canonicalPath=/Users/michaelcarrano/AndroidStudioProjects/detective_droid/app/src/main/res/raw/libraries.json, usableSpace=0, hidden=false, totalSpace=0, path=/Users/michaelcarrano/AndroidStudioProjects/detective_droid/app/src/main/res/raw/libraries.json, name=libraries.json, prefixLength=1, absolute=true, class=class java.io.File, parentFile=/Users/michaelcarrano/AndroidStudioProjects/detective_droid/app/src/main/res/raw, absolutePath=/Users/michaelcarrano/AndroidStudioProjects/detective_droid/app/src/main/res/raw/libraries.json, absoluteFile=/Users/michaelcarrano/AndroidStudioProjects/detective_droid/app/src/main/res/raw/libraries.json, parent=/Users/michaelcarrano/AndroidStudioProjects/detective_droid/app/src/main/res/raw}

感谢任何帮助,因为即使在阅读文档后我似乎也没有弄清楚这一点。 http://www.gradle.org/docs/current/userguide/working_with_files.html

最佳答案

我只是发布现在有效的任务的代码:

task combineJSonFiles {
    String content = ""
    FileTree tree = fileTree(dir: '../libraries', include: '**/*.json')
    tree.each {File file ->
        content += file.getText()
    }
    def libraries = new File("app/src/main/res/raw/libraries.json")
    libraries.text = "[" + content.substring(0, content.length()-1) + "]"
}

我的问题是尝试使用 Java.io.File 并为我的文件设置了错误的目录路径。

关于gradle - Gradle 任务写入文件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25374132/

相关文章:

java - 运行我的应用程序时出错

带有 Gradle 插件版本 3.6.1 和 Gradle 版本 5.6.4 的 Android Studio 3.6.1 无法正常工作

android - 发布android库到jcenter : gradle bintrayUpload does not find libraries

android - 错误 : resource integer/google_play_services_version (aka app:integer/google_play_services_version) not found

android - ionic : compileSdkVersion is not specified - Could not find method leftShift()

gradle - 如何设置 gradle 多模块项目? (无法解析项目 :moduleA. )

java - 动画是抽象的,无法实例化

java - 使用Spring Boot的Kotlin Gradle构建不会将jar发布到Artifactory-仅构建信息

android - Android Gradle Proguard错误:播放服务

android - 布局编辑器 : How to show layout in framelayout container?