这两天公司要重构项目,以前的项目在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下)的更多相关文章

  1. android studio 使用gradle 导出jar包,并打包assets目录

    警告:本文年久失修. 随着android studio的升级 ,gradle的升级,严格按照本文的代码去做可能不会成功,希望依然可以作为解决问题的思路. 最近项目在做一个sdk,供别的开发者使用,所以 ...

  2. [转]--android studio 使用gradle 导出jar包,并打包assets目录

    转自: http://www.cnblogs.com/wuya/p/android-studio-gradle-export-jar-assets.html   最近项目在做一个sdk,供别的开发者使 ...

  3. Android Studio 使用 Gradle 打包 Jar

    Android Studio 打 Jar 包一直是一个麻烦的事,按照网上现有的教程,打包一个混淆的 jar 需要完成下列步骤: 1.将 plugin 修改为 library 后 build 出 aar ...

  4. Android Studio 简介及导入 jar 包和第三方开源库方[转]

    原文:http://blog.sina.com.cn/s/blog_693301190102v6au.html Android Studio 简介 几天前的晚上突然又想使用 Android Studi ...

  5. Android Studio中如何打JAR包

    Android Studio中对于library类型的Moudle,默认打出来的是AAR包, 但有时候我们的SDK还需要共享给一些其他eclipse的项目使用,这样我们就需要输出JAR包, 可以通过在 ...

  6. Android Studio将引用第三方jar包的library打包成jar包

    在该module的build.gradle中添加 task makeJar(type: Jar) { archiveName 'mysdk.jar' from('build/intermediates ...

  7. android studio 引入第三方类库jar包

    第三方类库jar包 这就简单多了,直接将jar包拷贝到app/libs下,然后在app下的build.gradle中添加此jar的依赖.如下: dependencies { compile 'com. ...

  8. android studio打可执行jar包

    android studio可以通过library工程打出jar包 解压会看到META-INF/MANIFEST.MF文件的打开如下: Manifest-Version: 1.0 增加一行,注意冒号后 ...

  9. Android Studio 将module打成jar包

    1.新建测试工程,工程里面有两个module,app是Android工程,mylibrary是Android Library库. 2.打开mylibrary目录下的build.gradle文件,加入下 ...

随机推荐

  1. npm 安装axios和使用增删改查

    1:安装axios(建议安装淘宝镜像) npm install axios 2:项目导入 npm install --save axios vue-axios 3:页面导入 import axios ...

  2. escape,unescape与encodeURIComponent,decodeURIComponent

    escape:将string转成unicode字符串 escape('

  3. 浅析内存对齐与ANSI C中struct型数据的内存布局-内存对齐规则

    这些问题或许对不少朋友来说还有点模糊,那么本文就试着探究它们背后的秘密. 首先,至少有一点可以肯定,那就是ANSI C保证结构体中各字段在内存中出现的位置是随它们的声明顺序依次递增的,并且第一个字段的 ...

  4. 【[SCOI2010]生成字符串】

    \(n=m\)时候经典的卡特兰 那\(n!=m\)呢,还是按照卡特兰的方式来推 首先总情况数就是\(\binom{n+m}{n}\),在\(n+m\)个里选择\(n\)个\(1\) 显然有不合法的情况 ...

  5. P2939 改造路

    P2939 [USACO09FEB]改造路Revamping Trails 裸地分层图最短路 培训的时候考到过 但是-- 我考试的时候写了个基本没有的树状数组优化.然后顺利的被卡到了70分(裸的spf ...

  6. FileUpload框架实现文件上传(多个文件)和下载

    一.文件上传: 对于大文件执行下面的代码之间卡死 package com.example.web.service.servlet; import java.io.File; import java.i ...

  7. 我想写一个前端开发工具(一):在npm发布模块

    有必要说说我为什么要开始写这个,正文从下面的第一条开始 我最近忙于公司的项目,一直没有抽出时间来写文章.本来想每个月写一片文章,保质保量,无奈上个月没有坚持. 这段时间有点忙,主要是由于公司业务调整, ...

  8. tomcat解决端口号占用问题

    1.第一种方法 更改tomcat自己的端口号: conf 目录下 找到 server.xml,把默认的8080端口改个别的试试,tomcat 一般端口号改的要大于 6000,. 2.第二种方法 关闭端 ...

  9. Vue nodejs商城项目-商品的分页、排序、筛选

    .分页 ,要查第3页的数据,则跳过2*8条数据,然后返回8条数据. 在实现滚动加载时,页面刚一加载完成并不需要请求所有数据,当用户下拉到页面底部时,再去请求数据并拼接到商品数据列表中. 通过vue-i ...

  10. 框架篇 -- Struts2

    Struts框架很很早接触的一个框架知识,已经不那么频繁使用了,但是总结一下,复习一下还是很有必要的; Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MV ...