在你的项目开发过程中,肯定不少使用jar包,虽然当下通过依赖注入的方式引入资源类库更为流行,
但是Jar在项目中多多少少依然是剪不断理不烂的存在。接下来,这篇文章将详细的给你展示如何生成自己的jar包
友情提示,在看这篇文章之前建议你先买点零食放着,等你做出来自己的Jar包了,零食作为奖励犒劳自己
我这个友情提示是不是有点骚.....哈哈哈哈
好了,Android Studio发动起来.....
先创建一个HelloJarApplication项目,在这个项目中创建Module,然后将Module生成Jar包
接下来,在HelloJarApplication项目中创建一个Module,我们暂且命名为MyUtils吧
第3步,是在MyUtils这个Module中创建一些类文件,作为测试的API
第4步, 对MyUtils这个Module的build.gradle文件 进行配置,特别说明是Module的build.gradle文件,
而不是app,这个要搞清楚,配置的代码先贴这里一份,后续还有提供方式不同功能相同的代码
MyUtils模块build.gradle文件中的配置代码:
def _BASENAME ="myutils" // jar 的名称
def _VERSION ="-v1.0" // jar 的版本号
def _DestinationPath ="build/libs" //生成jar包的位置
def zipFile = file('build/intermediates/packaged-classes/release/classes.jar') //待打包文件位置
task deleteBuild(type:Delete){
delete _DestinationPath + _BASENAME + _VERSION +".jar" // 每次打包之前先自动删除原有的jar
}
task makeJar(type:Jar){
from zipTree(zipFile)
from fileTree(dir:'src/main',includes:['assets/**'])//将assets目录打入jar包
baseName = _BASENAME + _VERSION
destinationDir = file(_DestinationPath)
}
makeJar.dependsOn(deleteBuild, build)
特别说明:该段代码的放置位置: 与android 和 dependencies 节点同级
与android 和 dependencies 节点同级
与android 和 dependencies 节点同级
重要的话逼逼3遍!!!
如下图
Well,Well,Well,至此配置结束,接下来开始生成Jar
生成Jar的方式有两种
方式1
结果如下
方式2
当然结果和方式1一样,恕不上图
至此,Jar成功生成,下面提供其他形式的配置代码,顺带说一下这个过程的坑
如果你配置了代码却没有生成Jar,恭喜你!!!不是恭喜你没成功喝倒彩,而是恭喜你,即将要找到原因了
duang,duang,duang.....敲黑板
这个待打包文件位置,存在着一个版本不同而导致 的不同问题
def zipFile = file('build/intermediates/packaged-classes/release/classes.jar')
Android Studio3.1.3之后的版本是: “build/intermediates/packaged-classes/release/”
Android Studio3.1.3之前的版本是: “build/intermediates/bundles/release/”
如果你配置了代码,并且反复检查配置没问题但却没有生成Jar,很大可能是这里出问题了
下面提供其他形式的配置代码
task makeJar(type: Copy) {
delete 'build/libs/myutils-v1.0.jar' // 删除之前生成的jar
from('build/intermediates//packaged-classes/release/') // 设置待打包文件位置
into('build/libs/') //生成jar包的位置 放入build/libs/目录下
include('classes.jar') // include ,exclude参数来设置过滤
rename ('classes.jar', 'myutils-v1.0.jar') // 将jar重命名为myjar.jar
}
makeJar.dependsOn(build)
特别说明:该段代码的放置位置: 与android 和 dependencies 节点同级
与android 和 dependencies 节点同级
与android 和 dependencies 节点同级
重要的话逼逼3遍!!!
好了,又是文字,又是图片,叨逼叨了这么多,现在是 2019-11-26 19:39:07,我要回家吃饭了
打完收工....诶,等等
QQ群放这里:578060039 我放了,你随意
打完收工,See you next article.....赛有娜拉。