gradle 修改文件内容

大尾巴狼
  • 245

我创建了一个 build.gradle 同时在该目录下面创建了一个 111.txt 里面的内容是 111 ,如何使用 build.gradle 将 111.txt 里面的 111 替换成 222 简单来说就是 替换指定内容行,或者替换指定行! 谢谢:)

回复
阅读 10.4k
4 个回答
Feng_Yu
  • 10.5k

感觉你需要的其实是这个功能: filtering_files

Gradle本身就使用groovy DSL做配置文件,因此完全可以使用groovy自带的groovy template渲染文件内容。

把 111.txt 放到 resources 目录里吧

这个需要在build.grade里面写个task,在task里写一些对111.txt文件的读写操作,然后运行时就直接调用这个任务就可以了

感谢大家,我还是用了比较笨的办法,就是先将文件中的数据读取到一个List中,在这中间根据相应的条件判断, 然后又把List的数据写回文件这样。

类似于这样:

    //读取文件,并装进List。
    def list = []
    new File('gradle.properties').withReader('UTF-8') { reader ->
        reader.eachLine {
            if (it.contains('PACKAGE_NAME')) {
                it = "PACKAGE_NAME=${packageName}"
            } else if (it.contains('IS_LANDSCAPE')) {
                it = "IS_LANDSCAPE=${isLandScape}"
            } else if (it.contains('IS_DEBUG')) {
                it = "IS_DEBUG=${isDebug}"
            } else if (it.contains('IS_DEBUG')) {
                it = "IS_ROOT=${isRoot}"
            }
            list.add(it + "\n")
        }
    }

然后写回去:

new File('gradle.properties').withWriter('UTF-8') { writer ->
    list.each {
        writer.write(it)
    }
}

这样可以解决我目前的问题 :D

宣传栏