gradle編譯jar
⑴ Android Studio中gradle命令指定打jar包...
近期在項目中需要對網路訪問介面進行jar封裝。
在eclipse中進行指定類進行打jar包很簡單,但是在android studio中則有點困難,其主要的原因是需要掌握gradle命令形式。接下來就直接上干貨。
首先,在你需要進行分裝jar的模塊進行build.gradle文件下進行以下添加:
然後在Windos CMD中跳轉到你的項目路徑下,然後執行gradle makeJar命令,如果提示:gradle命令不可用。那麼你需要在你的系統環境變數中進行變數的添加:
找到你的gradle插件路徑進行添加,然後再在path屬性的末尾進行
「;%GRADLE_HOME%\bin」添加。
然後輸入 "gradle -v"或者"gradle -version"都可以.
如圖就說明gradle配置成功了。
然後再cmd命令到你的項目路徑下,然後再次輸入gradle makeJar回車,
這里提示我們在我需要進行jar分裝的模塊出錯了, 我們按照錯誤提示進行修改 ,在buold.gradle文件中添加
lintOptions {
abortOnErrorfalse
}
然後點擊Sync Now。再次運行gradle makeJar。然後再一長串的編譯後在末尾看到
然後我們在項目模塊的build/libs文件夾下看到了我們命名的.jar文件
OK,到此就結束了。上面是個簡單的例子,只能打包某個包下面的所有文件,如果要實現只打某個包下面的某些子包或者文件可參考如下示例:
taskmakeSdkJar(type:org.gradle.api.tasks.bundling.Jar){
baseName'pluginsdk'
//只打包org.cmdmac下的org.cmdmac.pluginsdk.impl和org.cmdmac.gamecenter,其他子包不會被打包進去
from('build/intermediates/classes/debug/org/cmdmac/'){
include'pluginsdk/impl'
include'gamecenter'
}
into('org/cmdmac/')
// exclude('R.class')
// exclude{ it.name.startsWith('R$');}
taskmakeSdkJar(type:org.gradle.api.tasks.bundling.Jar){
baseName'pluginsdk'
//只打包org.cmdmac下的org.cmdmac.pluginsdk.impl和org.cmdmac.gamecenter,其他子包不會被打包進去
from('build/intermediates/classes/debug/org/cmdmac/'){
include'pluginsdk/impl'
include'gamecenter'
}
into('org/cmdmac/')
// exclude('R.class')
// exclude{ it.name.startsWith('R$');}
}
⑵ 怎麼用gradle反編譯jar包
最簡單的方法。用RadioButton控制項就行了。何苦搞得這么累呢。如果真要這樣做也可以就是五個控制項共用一個事件同時訂閱相同事件然後再判斷你選中的Checkbox其他的為假代碼如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
運行 gradle -q publish 可發布 源代碼, classed-jar 包到 204 的 nexus 庫。
注意:
1、 jar包的 名字(artifactId) 使用項目名稱;
2、 version 設置 和 publish 的 地址要匹配, releases 地址對應到真實版本, snapshots地址對應為 snapshot版本(如:version=0.1.2.snapshot)。
3、在其他項目中引用發布的包,
只要在 build.gradle 文件的 dependencies 加類似:
compile group: 'group值', name: 'artifactId值', version: 'version值'
在 eclipse 環境下,就能查看 jar 包的源代碼,自動構建 類路徑。