如何使用Android Gradle压缩文件夹?

时间:2017-08-31 16:28:32

标签: android android-gradle zip gradle-task

我正在尝试使用gradle压缩android源代码,但我的gradle任务没有做任何事情。完成gradle同步后,没有任何事情发生,我的来源不是拉链。

我跟着this但是没有工作。

我的Gradle:

apply plugin: 'com.android.application'


 task myZip(type: Zip) {
     from 'src/main/assets/'
     include '*/*'
     archiveName 'test.zip'
     destinationDir(file('src/main/'))
     println "Zipping Continues... "
}

  android {
     compileSdkVersion 26
     buildToolsVersion "26.0.1"
     defaultConfig {
     applicationId "test.sample.com.myapplication"
     minSdkVersion 15
     targetSdkVersion 26
     versionCode 1
     versionName "1.0"
     testInstrumentationRunner 
     "android.support.test.runner.AndroidJUnitRunner"
   }
   buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
   }
}



dependencies {
   implementation fileTree(dir: 'libs', include: ['*.jar'])
   androidTestImplementation('com.android.support.test.espresso:espresso-core:3.0.1', {
       exclude group: 'com.android.support', module: 'support-annotations'
   })
   implementation 'com.android.support:appcompat-v7:26.0.2'
   testImplementation 'junit:junit:4.12'
   implementation 'com.android.support.constraint:constraint-layout:1.0.2'
 }

这是我的gradle脚本,请给我一些解决方案。

1 个答案:

答案 0 :(得分:0)

当我想用符号对JNI库进行压缩,然后再将它们发布到私有Maven提要时,遇到了同样的问题。由于我不熟悉Gradle,因此花了一些时间弄清楚这些步骤。基本上,我通过添加一个额外的步骤来在构建管道中运行myZip任务来解决该问题:

./gradlew build
./gradlew myZip # extra step to run the myZip task 
./gradlew publish

这是我的build.gradle的一部分,仅供参考:

apply plugin: 'maven-publish'

task myZip(type: Zip) {
    archiveName "symbols.zip"
    from "$buildDir/intermediates/transforms/mergeJniLibs"
    destinationDir file("$buildDir/outputs/sym")

    doFirst {
        println "Run myZip task to create symbols.zip"
    }
}

publishing {
    publications {
        symbolsPublication(MavenPublication) {
            ... ...
            artifact file("$buildDir/outputs/sym/symbols.zip")
        }
    }
}

... ...