應(yīng)用場(chǎng)景
在實(shí)際開發(fā)中我們想要把我們依賴的library 打包成jar 依賴到工程中。廢話不多說(shuō),馬上開始。
library 打包成jar
配置 gradle 文件
將 library 打成jar 非常簡(jiǎn)單,將下面代碼添加到library 中的 build.gradle 文件中。
def SDK_BASENAME = "TestSdk";
def SDK_VERSION = "_V1.0";
def sdkDestinationPath = "build";
def zipFile = file('build/intermediates/bundles/release/classes.jar')
task deleteBuild(type: Delete) {
delete sdkDestinationPath + SDK_BASENAME + SDK_VERSION + ".jar"
}
task makeJar(type: Jar) {
from zipTree(zipFile)
from fileTree(dir: 'src/main',includes: ['res/**'])
baseName = SDK_BASENAME + SDK_VERSION
destinationDir = file(sdkDestinationPath)
}
makeJar.dependsOn(deleteBuild, build)
說(shuō)明:
- sdkDestinationPath : 設(shè)置生成的jar包輸出的路徑
- baseName : 生成jar包的名字
注意:
- 這段代碼可以將 library 中的資源文件打到j(luò)ar 包中,但是像layout 等文件目前還不知道如何引用,網(wǎng)上說(shuō)不能直接引用,我也試了不可以直接引用。如果有人知道請(qǐng)分享一下大家一起學(xué)習(xí)一下。
- 項(xiàng)目只能是library,而不能是application,也就是說(shuō)我們的gradle中
app plugin
應(yīng)該是:apply plugin: 'com.android.library'
from fileTree(dir: 'src/main',includes: ['res/**'])
這段代碼是將 資源文件打入jar 包的代碼。
生成jar
- 首先打開Android Studio IDE 中的gradle 操作頁(yè)面
- 找到對(duì)應(yīng) library 名字打開 Tasks
- 打開Tasks 找到other 目錄,在other 目錄下有makejar
- 雙擊 makejar 。message 窗口會(huì)提示
Information:BUILD SUCCESSFUL
說(shuō)明:
other 目錄下的 makejar 是和library 中 gradle 中task makejar
相對(duì)應(yīng)的,makejar 不是固定的。