在Android studio中用gradle打 jar 包(Mac下)
这两天公司要重构项目,以前的项目在eclipse上,准备迁移到Android studio上,需要对项目打包,于是我学习了Android studio中gradle打包的内容。我在公司用的Mac,在家用的Windows,两种平台下,打包基本一样的,这里主要说下在Mac系统下的过程。
在Andorid studio中的Terminal用的是Mac的终端,所以要使用Terminal的gradle命令打包,先要配置下mac中的gradle环境,打开mac上的终端:
(1) 输入命令:open .bash_profile
(2) 如果提示没有.base_profile文件,则要先创建.bash_profile文件。
创建.bash_profile文件:
输入:touch .bash_profile 命令后会帮你创建并打开.bash_profile文件
(3)在打开的.bash_profile文件中编辑,下面是我内容:
export GRADLE_HOME=/Users/wuqiyan/Downloads/Software/gradle-2.12;(下载gradle-2.12,解压后的目录)
export PATH=$PATH:$GRADLE_HOME/bin
保存后就可以了。
(4)再输入命令:open .bash_profile 就可以打开.bash_profile文件内容了。
(5)以上过程结束后,gradle环境配置好了。检查下,输入命令:gradle -version 看到下面的就等于配置好了。
------------------------------------------------------------
Gradle 2.12
------------------------------------------------------------
Build time: 2016-03-14 08:32:03 UTC
Build number: none
Revision: b29fbb64ad6b068cb3f05f7e40dc670472129bc0
Groovy: 2.4.4
Ant: Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM: 1.8.0_77 (Oracle Corporation 25.77-b03)
OS: Mac OS X 10.11.3 x86_64
以上就是Mac中的gradle的配置,这时候回到Android studio中,在Terminal中输入命令:gradle -version 也会看到上面的提示。
先来看下目录结构:

先建了一个项目后,打开app下的build.gradle文件:
(1)将 apple plugin:'com.android.application'改为apply plugin: 'com.android.library'
(2)删除:applicationId,versionCode,versionName
(3)加入:
task clearJar(type: Delete) {
//删除以前有的
delete 'build/libs/partJar.jar'
}
task makeJar(type: Copy) {
//从哪里打包class文件,可以指定文件和目录
from('build/intermediates/bundles/debug/')
//打包到jar后的目录结构
into('build/libs/')
include('classes.jar')
rename ('classes.jar', 'partJar.jar')
}
makeJar.dependsOn(clearJar, build)
代码输入完之后,在andriod studio中Terminal中输入:./gradlew makeJar (windows中输入:gradlew makeJar)
最后就可以在 build/libs/目录下找到partJar.jar。 如果要打Jar指定包名和类的话,可以参考下面的代码:
task clearJar(type: Delete) {
delete 'build/libs/partJar.jar'
}
task makeJar(type:org.gradle.api.tasks.bundling.Jar) {
//指定生成的jar名
baseName 'partJar2'
//从哪里打包class文件,可以指定文件和目录
from('build/intermediates/classes/debug/com/example/wuqiyan/exportjar/') {
include 'BuildConfig.class'
}
//打包到jar后的目录结构
into('com/example/wuqiyan/exportjar/')
}
makeJar.dependsOn(clearJar,build)
可以阅读:http://www.alloyteam.com/2015/03/shi-yong-gradle-da-bao-zhi-ding-bao-ming-he-lei-di-jar/
http://www.jianshu.com/p/dc6bcd4478a1
http://blog.csdn.net/edisonchang/article/details/51296265
在Android studio中用gradle打 jar 包(Mac下)的更多相关文章
- android studio 使用gradle 导出jar包,并打包assets目录
警告:本文年久失修. 随着android studio的升级 ,gradle的升级,严格按照本文的代码去做可能不会成功,希望依然可以作为解决问题的思路. 最近项目在做一个sdk,供别的开发者使用,所以 ...
- [转]--android studio 使用gradle 导出jar包,并打包assets目录
转自: http://www.cnblogs.com/wuya/p/android-studio-gradle-export-jar-assets.html 最近项目在做一个sdk,供别的开发者使 ...
- Android Studio 使用 Gradle 打包 Jar
Android Studio 打 Jar 包一直是一个麻烦的事,按照网上现有的教程,打包一个混淆的 jar 需要完成下列步骤: 1.将 plugin 修改为 library 后 build 出 aar ...
- Android Studio 简介及导入 jar 包和第三方开源库方[转]
原文:http://blog.sina.com.cn/s/blog_693301190102v6au.html Android Studio 简介 几天前的晚上突然又想使用 Android Studi ...
- Android Studio中如何打JAR包
Android Studio中对于library类型的Moudle,默认打出来的是AAR包, 但有时候我们的SDK还需要共享给一些其他eclipse的项目使用,这样我们就需要输出JAR包, 可以通过在 ...
- Android Studio将引用第三方jar包的library打包成jar包
在该module的build.gradle中添加 task makeJar(type: Jar) { archiveName 'mysdk.jar' from('build/intermediates ...
- android studio 引入第三方类库jar包
第三方类库jar包 这就简单多了,直接将jar包拷贝到app/libs下,然后在app下的build.gradle中添加此jar的依赖.如下: dependencies { compile 'com. ...
- android studio打可执行jar包
android studio可以通过library工程打出jar包 解压会看到META-INF/MANIFEST.MF文件的打开如下: Manifest-Version: 1.0 增加一行,注意冒号后 ...
- Android Studio 将module打成jar包
1.新建测试工程,工程里面有两个module,app是Android工程,mylibrary是Android Library库. 2.打开mylibrary目录下的build.gradle文件,加入下 ...
随机推荐
- Orchard Core 中文文档翻译(一)关于Orchard Core
原文连接:https://www.cnblogs.com/Qbit/p/9746363.html 转载请注明出处 翻译说明:本系列为直译,按照官方的计划现在这个版本(2018年10月5日)已经接近最终 ...
- 初识EMC
EMC,即电磁兼容,是指设备在预期的电磁环境中,能按设计要求正常抵抗电磁干扰的能力.其主要包含3个方面:电磁干扰(EMI),电磁抗扰(EMS)与静电放电抗扰(ESD). 电磁干扰的方式可以大概分为传导 ...
- 团队合作学习scrum
查找资料学习scrum心得: 什么是scrum : scrum是一种轻量级软件开发方法,即一种做事的方法.scrum原本是指橄榄球运动的一个专业术语,原意为团队通力合作,在场地内传球.这个过程需要认真 ...
- Docker入门系列之三:如何将dockerfile制作好的镜像发布到Docker hub上
这个系列的前两篇文章,我们已经把我们的应用成功地在Docker里通过nginx运行了起来,并且用dockerfile里制作好了一个镜像. Docker入门系列之一:在一个Docker容器里运行指定的w ...
- echarts固定柱子宽度(barWidth)
series: [ { name: '', yAxisIndex: 0, type: ' ...
- Android(java)学习笔记13:线程组的概述和使用
1. Java中使用ThreadGroup来表示线程组,它可以对一批线程进行分类管理,Java允许程序直接对线程组进行控制. (1)默认情况下,所有的线程都属于主线程组. public final T ...
- 2018.11.8 Error contacting service. It is probably not running.
安装zookeeper-3.4.6的时候,启动正常没报错,但zkServer.sh status查看状态的时候却出现错误,如下: JMX enabled by default Using config ...
- 【题解】洛谷P3200 [HNOI2009] 有趣的数列(卡特兰数+质因数分解)
洛谷P3200:https://www.luogu.org/problemnew/show/P3200 思路 这题明显是卡特兰数的题型咯 一看精度有点大 如果递推卡特兰数公式要到O(n2) 可以证明得 ...
- Jquery 1.8全选反选删除选中项实现
JQuery1.6以后,Prop的出现,让1.6以下的全选反选效果全部失效了.以下是修正后的版本: 全选反选效果: $(".checkbox").click(function () ...
- JavaScript js调用堆栈(一)
本文主要介绍JavaScript程序内部的执行机制 首先先了解什么是执行上下文 执行上下文就是当前JavaScript代码被解析和执行是所在环境的抽象概念,JavaScript中运行任何的代码都是在执 ...