前言
最近在给一个客户做SDK开发,客户交付的aar要求比较多,比如去掉R.txt文件了,把class.jar改名为我们公司前缀名并移动到libs下,网上查了好多方法都不好用,终于还是找到一个可行的方法,在这里记录一下打包过程。
注:该打包方法用的是gradle中task的copy和zip。
首先我们定义一个task并依赖于’assemble’,将自动打包出来的aar解压到指定文件夹下,在文件夹中直接对文件进行删除和移动操作。
task renameExtractAar(dependsOn: 'assemble', type: Copy) {
outputs.upToDateWhen { false }
println(project.buildDir.getAbsolutePath())
File processAarFile = new File(project.buildDir, "outputs/aar/自动成功的aar名称-release.aar")
File workDir = new File(project.buildDir, "outputs/aar/workDir")
from zipTree(processAarFile)
into workDir
doFirst {
if (workDir.exists()) {
workDir.deleteDir()
}
}
doLast {
File classesJar = new File(workDir, "classes.jar")
File renameJar = new File(workDir, "libs/重命名后的.jar")
classesJar.renameTo(renameJar)
File rTxt = new File(workDir, "R.txt")
rTxt.delete()
}
}
第二步就是重新压缩文件夹为aar了,我们依旧新建一个task依赖于上一个task,然后将文件夹下的文件重新打包为aar,并可以重命名,指定输出路径。
task outAar(dependsOn: renameExtractAar, type: Zip) {
outputs.upToDateWhen { false }
File aarDir = new File(project.buildDir, "outputs/aar")
File workDir = new File(aarDir, "workDir")
from workDir
archiveName "文件名.aar"
destinationDir aarDir
}
最后我们只要运行最后一个task就大功告成了。
参考文章:ANDROID STUDIO 打包时动态修改AAR 包名称
总结
以上就是今天要讲的内容,本文仅仅介绍了Android AAR打包的简单删除和移动文件,希望能对你有所帮助。
|