不管是在Eclipse或是在IntelijIdea中,都有比较好的方法进行打包,但是在gradle时代,打JAR包就只好自己动手写脚本了。
如果,要打jar包,我们要清楚原理。
jar包其实就是把所有的class文件集合在一起,只要我们找到了编译时的输出目录即可。观察下,在build/intermediates/classes/release(debug)下有生成临时的class,这就是我们需要的路径了,然后,使用gradle 中预定义Jar的task,进行配置即可。
帮助文档
对照着上图,我们进行一些配置。
task buildJar(dependsOn: [‘compileReleaseJavaWithJavac’], type: Jar) {
appendix = "m"
baseName = "tcl-framework"
version = android.defaultConfig.versionName
classifier = "release"
//后缀名
extension = "jar"
//最终的 Jar 包名,如果没设置,默认为 [baseName]-[appendix]-[version]-[classifier].[extension]
archiveName = baseName + "-" + appendix + "-" + version + "-" + classifier + "." + extension;
//需打包的资源所在的路径集
def srcClassDir = [project.buildDir.absolutePath + "/intermediates/classes/release"];
//初始化资源路径集
from srcClassDir
//去除路径集下部分的资源
exclude "com/tcl/framework/BuildConfig.class"
exclude "com/tcl/framework/R.class"
exclude "com/tcl/framework/BuildConfig/\$*.class"
exclude "com/tcl/framework/R/\$*.class"
//只导入资源路径集下的部分资源
include "com/tcl/framework/**/*.class"
//注: exclude include 支持可变长参数
}