Android中gradle脚本 删除目录 批改目录 修改文件字符串等操作
2016-12-20 16:39
615 查看
原文地址:http://www.68idc.cn/help/mobilesys/android/20160507613407.html
Android中gradle脚本 删除目录 修改目录 修改文件字符串等操作
//编码格式
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
//定义全局变量
ext{
NAME="test"
}
//读取gradle配置文件
def initBuildPath() {
Properties properties = new Properties()
File propertyFile = new File(rootDir.getAbsolutePath() + "/local.properties")
properties.load(propertyFile.newDataInputStream())
ext.sdkDir = properties.getProperty('sdk.dir')
ext.ndkDir = properties.getProperty('ndk.dir')
}
//读取文件并替换字符串
def fileReader(path, oldStr, newStr) {
def readerString = "";
new File(path).withReader('UTF-8') { reader ->
reader.eachLine {
if (it.find(oldStr)) {
it = it.replace(oldStr, newStr)
}
readerString <<= it
readerString << '\n'
}
return readerString
}
}
//写文件
def fileWrite(path, stringBuffer) {
new File(path).withWriter('UTF-8') {
within ->
within.append(stringBuffer)
}
}
//copy src 目录
task copyPackage(type: Copy) {
initBuildPath()
from 'src'
into SRC_TEMP
// 剔除不需要的文件
exclude '*values-zh-rCN', '*values-zh-rTW', '*values-th', '*values-ko'
}
//修改目录
task moveToTest(type: Copy) {
// println("开始移动到test")
from JAVA_DIR
into JAVA_DIR_TEST
filter { String line ->
if (line.find('package com.main;')) {
//替换字符串
line = line.replace("package com.main;", "package com.main.test;")
}
"$line"
}
//删除原目录
doLast {
File file1 = new File(rootDir.getAbsolutePath() + '\\app\\' + JAVA_DIR);
file1.deleteDir();
}
}
//替换文件的字符串
task replaceConstants << {
def strBuffer = fileReader(rootDir.getAbsolutePath() + '\\app\\' + JAVA_DIR_TEST + '\\Test.java', "TEST_FLAG = 0", "TEST_FLAG = 1");
fileWrite(rootDir.getAbsolutePath() + '\\app\\' + JAVA_DIR_TEST + '\\Test.java', strBuffer);
}
//运行命令行
task createR(type: Exec) {
workingDir 'E:\\SDK\\build-tools\\23.0.2\\'
commandLine 'cmd', '/c', 'aapt package -f -m -J ' + r文件要存放的目录 + " -S v7的res文件 -S res文件 -M manifest文件 -I android.jar文件 --auto-add-overlay"
}
//apk编译之前运行taskA
preBuild.dependsOn taskA
Android中gradle脚本 删除目录 修改目录 修改文件字符串等操作
//编码格式
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
//定义全局变量
ext{
NAME="test"
}
//读取gradle配置文件
def initBuildPath() {
Properties properties = new Properties()
File propertyFile = new File(rootDir.getAbsolutePath() + "/local.properties")
properties.load(propertyFile.newDataInputStream())
ext.sdkDir = properties.getProperty('sdk.dir')
ext.ndkDir = properties.getProperty('ndk.dir')
}
//读取文件并替换字符串
def fileReader(path, oldStr, newStr) {
def readerString = "";
new File(path).withReader('UTF-8') { reader ->
reader.eachLine {
if (it.find(oldStr)) {
it = it.replace(oldStr, newStr)
}
readerString <<= it
readerString << '\n'
}
return readerString
}
}
//写文件
def fileWrite(path, stringBuffer) {
new File(path).withWriter('UTF-8') {
within ->
within.append(stringBuffer)
}
}
//copy src 目录
task copyPackage(type: Copy) {
initBuildPath()
from 'src'
into SRC_TEMP
// 剔除不需要的文件
exclude '*values-zh-rCN', '*values-zh-rTW', '*values-th', '*values-ko'
}
//修改目录
task moveToTest(type: Copy) {
// println("开始移动到test")
from JAVA_DIR
into JAVA_DIR_TEST
filter { String line ->
if (line.find('package com.main;')) {
//替换字符串
line = line.replace("package com.main;", "package com.main.test;")
}
"$line"
}
//删除原目录
doLast {
File file1 = new File(rootDir.getAbsolutePath() + '\\app\\' + JAVA_DIR);
file1.deleteDir();
}
}
//替换文件的字符串
task replaceConstants << {
def strBuffer = fileReader(rootDir.getAbsolutePath() + '\\app\\' + JAVA_DIR_TEST + '\\Test.java', "TEST_FLAG = 0", "TEST_FLAG = 1");
fileWrite(rootDir.getAbsolutePath() + '\\app\\' + JAVA_DIR_TEST + '\\Test.java', strBuffer);
}
//运行命令行
task createR(type: Exec) {
workingDir 'E:\\SDK\\build-tools\\23.0.2\\'
commandLine 'cmd', '/c', 'aapt package -f -m -J ' + r文件要存放的目录 + " -S v7的res文件 -S res文件 -M manifest文件 -I android.jar文件 --auto-add-overlay"
}
//apk编译之前运行taskA
preBuild.dependsOn taskA
相关文章推荐
- FTP 工具类. 可以完成对目录创建的创建、修改、删除,对文件的上传下载等操作
- C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名
- C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名
- C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名
- FTP 工具类. 可以完成对目录创建的创建、修改、删除,对文件的上传下载等操作
- Android gradle build 修改文件名称及目录
- PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
- PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
- C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名
- C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名
- Android Assets目录的读和删除文件操作
- C#文件操作 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名
- C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名
- C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名
- 这是一个定时脚本,主要功能是遍历该文件夹下的所有文件并存储到数组,对数据中的文件进行操作,一个一个移动到指定的目录下,并删除原有文件
- shell脚本,对指定目录下C文件,替换和删除字符串
- 使用sh脚本如何替换指定目录下所有文件中的指定字符串
- gradle 删除指定目录中的文件和目录
- Linux监控系统磁盘使用比例,当使用率达到指定比例,删除指定目录下的所有文件的shell脚本
- hadoop-3.0.0-beta1运维手册(007):hdfs3.0.0基本操作-上传、下载、删除文件或目录