美文网首页
(技术)聊聊Android Studio 如何生成Jar

(技术)聊聊Android Studio 如何生成Jar

作者: 点映文艺 | 来源:发表于2019-11-26 18:50 被阅读0次

    在你的项目开发过程中,肯定不少使用jar包,虽然当下通过依赖注入的方式引入资源类库更为流行,

    但是Jar在项目中多多少少依然是剪不断理不烂的存在。接下来,这篇文章将详细的给你展示如何生成自己的jar包

    友情提示,在看这篇文章之前建议你先买点零食放着,等你做出来自己的Jar包了,零食作为奖励犒劳自己

    我这个友情提示是不是有点骚.....哈哈哈哈

    好了,Android Studio发动起来.....

    先创建一个HelloJarApplication项目,在这个项目中创建Module,然后将Module生成Jar包

    j1.png

    接下来,在HelloJarApplication项目中创建一个Module,我们暂且命名为MyUtils吧

    j2.png

    第3步,是在MyUtils这个Module中创建一些类文件,作为测试的API

    j3.png

    第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遍!!!
    

    如下图

    j4.png

    Well,Well,Well,至此配置结束,接下来开始生成Jar

    生成Jar的方式有两种

    方式1

    5.png j5.png

    结果如下

    j6.png

    方式2

    j7.png

    当然结果和方式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.....赛有娜拉。

    相关文章

      网友评论

          本文标题:(技术)聊聊Android Studio 如何生成Jar

          本文链接:https://www.haomeiwen.com/subject/axuywctx.html