在Android开发中,我们经常会将一些通用的代码统一放在Library中,或者是利用Library将框架性的代码与业务代码抽离开来。
框架抽离业务后,我们通常会将它放在Maven仓库,比如常见的JCenter、Maven Central,或者是团队内部自己搭建的Maven仓库,这样我们在使用的时候,可以直接一句话引用,如
compile 'com.android.support:appcompat-v7:24.2.0'
而一些团队没有自己的Maven仓库,又不愿意将框架放在公共Maven仓库时,导出Jar包是一个麻烦,但是可以满足需求的方式。
那么,在AS中,我们如果将Library 输出成Jar包呢?
代码编译
首先,在项目根路径使用gradlew 命令 clean 和 build项目
./gradlew clean build
完成之后,在 build/intermediates/classes/release
目录下,可以看到项目编译出的.class
文件
直接获取
在Library项目中的 /build/intermediates/bundles/release
目录下,可以看到class.jar这个jar包,可以直接拿出来改名使用,它其实就是Library项目编译出来的jar包
Gradle Task 方式
在对应的Library项目的build.gradle文件末尾,添加上下列代码
task makeJar(type: Copy) {
delete 'build/libs/androidtools.jar'
from('build/intermediates/bundles/release/')
into('build/libs/')
include('classes.jar')
rename ('classes.jar', 'androidtools.jar')
}
makeJar.dependsOn(build)