一、普通生成Jar包
task makeJar(type: Copy){
//删除之前的旧jar包
delete 'build/libs/androidJar.jar'
//从该目录取出jar包
from('build/intermediates/bundles/default/')
//将jar输出的目录
into('build/libs/')
//将classes.jar放入build/libs/目录下
include('classes.jar')
//自定义jar的名字
rename('classes.jar','androidJar.jar')
}
//使用makeJar命令执行该task
makeJar.dependsOn(build)
二、 普通生成Jar包自定义类名jar生成方式,可以去除资源
task makeJar(dependsOn: ['compileReleaseJavaWithJavac'], type: Jar) {
appendix = "demo"
baseName = "androidJar"
version = "1.0.0"
classifier = "release"
//后缀名
extension = "jar"
//最终的 Jar 包名,如果没设置,默认为 [baseName]-[appendix]-[version]-[classifier]. [extension]
//archiveName = "androidJar"
//需打包的资源所在的路径集
def srcClassDir = [project.buildDir.absolutePath + "/intermediates/classes/release"];
//初始化资源路径集
from srcClassDir
//去除路径集下部分的资源
exclude "com/dgcredit/libs/BuildConfig.class"
exclude "com/dgcredit/libs/BuildConfig\$*.class"
exclude "**/R.class"
exclude "**/R\$*.class"
//只导入资源路径集下的部分资源
include "com/dgcredit/libs/**/*.class"
//注: exclude include 支持可变长参数
}
//使用makeJar命令执行该task
makeJar.dependsOn(build)
三、混淆后的jar生成方式,可以去除资源
task makeGuardJar(type: ProGuardTask) {
// 未混淆的jar
injars 'build/intermediates/bundles/default/classes.jar'
// 混淆后的jar路径
outjars 'build/libs/androidJar.jar'
// 具体需要keep住的类
configuration 'proguard-rules.pro'
}
//使用makeGuardJar命令执行该task
makeGuardJar.dependsOn(build)
四、备注
后续会上传相关Demo到Github,欢迎Star
GitHub
该文章仅供学习交流所用,转载须注明出处xo
网友评论