這兩天公司要重構項目,之前的項目在eclipse上,準備遷移到Android studio上,須要對項目打包,因而我學習了Android studio中gradle打包的內容。我在公司用的Mac,在家用的Windows,兩種平臺下,打包基本同樣的,這裏主要說下在Mac系統下的過程。android
在Andorid studio中的Terminal用的是Mac的終端,因此要使用Terminal的gradle命令打包,先要配置下mac中的gradle環境,打開mac上的終端:windows
(1) 輸入命令:open .bash_profileapi
(2) 若是提示沒有.base_profile文件,則要先建立.bash_profile文件。bash
建立.bash_profile文件:app
輸入:touch .bash_profile 命令後會幫你建立並打開.bash_profile文件eclipse
(3)在打開的.bash_profile文件中編輯,下面是我內容:學習
export GRADLE_HOME=/Users/wuqiyan/Downloads/Software/gradle-2.12;(下載gradle-2.12,解壓後的目錄)gradle
export PATH=$PATH:$GRADLE_HOME/binui
保存後就能夠了。spa
(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