Grade將依賴的jar 打包進aar

//1.複製build/intermediates/bundles/${aar_flavor}/release/ 到複製build/intermediates/bundles/${aar_flavor}/release_fat_aar
//2.複製configurations.compile到build/intermediates/bundles/${aar_flavor}/release_fat_aar/libs中
//3.打一個zip包, 並改名爲aar
//---------------------------------Aar生產 Start----------------------------
//寫死 common
def aar_flavor = "common"
def root_bundles_path = "build/intermediates/bundles/${aar_flavor}/"
def fat_aar_out_path = "${rootProject.buildDir}/sdk_out_temp/${flavor}/"

task copyIntermediates(type: Copy) {
    delete root_bundles_path
    delete fat_aar_out_path

    from "${root_bundles_path}/release"
    into "${root_bundles_path}/release_fat_aar"
}

task addLibs(type: Copy) {
    //我實在不知道打release的時候爲什麼會把這個東西打進aar的classes中,這邊先排除
    from configurations.compile.grep {
        !it.name.contains("sms-standard-parser") &&  !it.name.contains("libml")
    }
    from configurations.commonCompile
    into "${root_bundles_path}/release_fat_aar/libs"
}
/**
 * 創建含有依賴的aar
 */
task makeFatAar(type: Zip) {
    from "${root_bundles_path}/release_fat_aar"
    archiveName "${mvn_artifactId}_${mvn_version}.aar"
    destinationDir(file(fat_aar_out_path))
}
copyIntermediates.dependsOn(build)
addLibs.dependsOn(copyIntermediates)
makeFatAar.dependsOn(addLibs)
//---------------------------------Aar生產 End-------------------------
// ---
/**
 * 同步AAr到demo中
 */
task syncAar(type: Copy) {
    from "${fat_aar_out_path}/${mvn_artifactId}_${mvn_version}.aar"
    into '../demo/libs/'
    rename { 's_sdk.aar' }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章