Gradle-使用脚本修改包名(package)
https://blog.csdn.net/oheg2010/article/details/103333509
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| ext { fromPath = 'app/src/com/ccdd/xx' intoPath = 'app/src/com/aabb/xx' deletePath = 'app/src/com/ccdd' packageName = 'package com.ccdd.xx' toPackageName = 'package com.aabb.xx' applicationIds = 'com.ccdd.xx' toApplicationIds = 'com.aabb.xx' }
task replaceImportPath { FileTree tree = fileTree(dir: 'app') tree.include '**/*.java' tree.include '**/*.xml' tree.each { File mfile -> fileReader(mfile.path, toApplicationIds) } fileReader("app/proguard-rules.pro", toApplicationIds) fileReader("app/build.gradle", toApplicationIds) } def fileReader(path, target_package) { println("path:" + path) def readerString = ""; def hasReplace = false file(path).withReader('UTF-8') { reader -> reader.eachLine { if (it.find(applicationIds)) { it = it.replace(applicationIds, target_package) hasReplace = true } readerString <<= it readerString << '\n' } if (hasReplace) { println(path + " has replace package.") file(path).withWriter('UTF-8') { within -> within.append(readerString) } } return readerString } }
task copyFile(type: Copy) { println("replaceImportPath:" + replaceImportPath) dependsOn replaceImportPath copy { from fromPath into intoPath filter { String line -> if (line.find(packageName)) { line = line.replace(packageName, toPackageName) } "$line" } } println("fromPath:" + fromPath) println("intoPath:" + intoPath)
File file1 = new File(deletePath); file1.deleteDir(); }
|