美文网首页
AS3.2 项目生成jar包

AS3.2 项目生成jar包

作者: 小曳Bi | 来源:发表于2018-11-14 16:09 被阅读0次

    在android开发过程中,我们有时会遇到比较大的项目,而本身负责该项目中的一个子功能实现,这个时候可以考虑将该子功能模块,打包成jar包提供给其他人使用。

    AS3.2 项目生成jar包.jpg

    一、含义介绍,什么是JAR?

    JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个[压缩文件]。为 J2EE 应用程序创建的 JAR 文件是 EAR 文件(企业 JAR 文件)。JAR 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和[插件程序]和 JVM 这样的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 JAR。

    二、android中jar包

    android jar包.png

    可以发现整个jar并不包含任何res文件,即你无法在jar包里面防止drawable,layout,string 等等,如果必须要使用这些东西,可以使用打包成aar。

    三、android jar如何构建

    -1.新建一个项目,然后给项目新建一个Modle,一般会自动添加依赖
    新建项目的Modle.png

    build.gradle里面Modle的依赖


    新建的Modle以及app的build.gradle里面的依赖.png
    -2.在Modle里面实现你的纯java模块,然后在你的Modle 的build.gradle的android{}里面添加如下代码:
    task makeJar(type: Copy) {
            //删除存在的
            delete 'build/libs/myjar.jar'
            //设置拷贝的文件  打进jar包后的文件目录
            from('build/intermediates/packaged-classes/release/')into('build/libs/')
            //将classes.jar放入build/libs/目录下
            //include ,exclude参数来设置过滤
            //(我们只关心classes.jar这个文件)
            include('classes.jar')
            //重命名
            rename ('classes.jar', 'myjar.jar')
        }
        makeJar.dependsOn(build) 
    

    注意:在as 3.2中对 intermediates 做了更改,build/intermediates/packaged-classes/release/表示classes.jar的位置
    而在as2.2中路径是这样的 build/intermediates/bundles/defalut/,无论怎样添加上classes.jar路径即可,而markJar会把classes.jar换成一个新的名字,例如myJar.jar。

    -3.在AS的左下方点击Terminal然后输入 gradlew makeJar 即可。

    其中gradlew是指令而markeJar是你在build.gradle的命名


    Terminal命令.png

    当出现SUCCESS即表示当前的jar打包成功,如果失败并且为包含res文件,可以查看日志信息,在build.gradle中添加

    lintOptions {
            abortOnError false
        }
    

    可以解决部分错误中断jar包生成。

    相关文章

      网友评论

          本文标题:AS3.2 项目生成jar包

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