應(yīng)用場景
在實際開發(fā)中我們想要把我們依賴的library 打包成jar 依賴到工程中。廢話不多說,馬上開始命辖。
library 打包成jar
配置 gradle 文件
將 library 打成jar 非常簡單轴合,將下面代碼添加到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)
說明:
- sdkDestinationPath : 設(shè)置生成的jar包輸出的路徑
- baseName : 生成jar包的名字
注意:
- 這段代碼可以將 library 中的資源文件打到j(luò)ar 包中府寒,但是像layout 等文件目前還不知道如何引用,網(wǎng)上說不能直接引用报腔,我也試了不可以直接引用株搔。如果有人知道請分享一下大家一起學(xué)習(xí)一下。
- 項目只能是library纯蛾,而不能是application纤房,也就是說我們的gradle中
app plugin
應(yīng)該是:apply plugin: 'com.android.library'
from fileTree(dir: 'src/main',includes: ['res/**'])
這段代碼是將 資源文件打入jar 包的代碼。
生成jar
- 首先打開Android Studio IDE 中的gradle 操作頁面
- 找到對應(yīng) library 名字打開 Tasks
- 打開Tasks 找到other 目錄翻诉,在other 目錄下有makejar
- 雙擊 makejar 炮姨。message 窗口會提示
Information:BUILD SUCCESSFUL
說明:
other 目錄下的 makejar 是和library 中 gradle 中task makejar
相對應(yīng)的,makejar 不是固定的碰煌。