gradle 编译jar包+混淆

时间:2022-04-18 09:06:53

来到新的公司,新的环境,不过用的技术还是比较老的,特别是Android客户端的,还在使用eclipse来开发,自动编译脚本编译jar包也是使用eclipse的目录结构,所以必须得有所改变了。

把eclipse改为Android Studio自然是比较方便的,但是为了让一大套的autobuild仍然可以跑起来,就要花点时间了。由于我们公司是做sdk开发的,所以必须要导出jar, 好了废话不多说,切入主题,gradle 编译jar包+混淆。

Android Studio是把库放入单独module中,进过build就可以生成包含当前module所有class文件的jar包,对应的gradle指令是,cd 到当前目录,然后“gradle build”(当然要执行gradle指令,需要配置好环境变量)。这个时候,在build/intermediates/bundles/(debug/release)/这个目录下就可以看见classes.jar这个jar包了。但现在算是完成一半了。
接下来对生成的jar包进行混淆操作,在module下的build.gradle中添加task。

task makeJar(type: proguard.gradle.ProGuardTask) {
// 未混淆的jar
injars 'build/intermediates/bundles/debug/classes.jar'
// 混淆后的jar路径
outjars 'build/target.jar'
configuration 'proguard-project.txt'
}

然后在命令行中执行gradle makeJar就可以在build目录下生成了你所设置的target.jar了,proguard-project.txt是混淆文件,具体如何混淆,和AndroidStudio直接使用是一样的,这里不再说明了。