AS3.2 项目生成jar包

2018-11-14  本文已影响0人  小曳Bi

在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包生成。

上一篇下一篇

猜你喜欢

热点阅读