【问题标题】:How to Zip a folder using Android Gradle?如何使用 Android Gradle 压缩文件夹?
【发布时间】:2018-02-09 16:33:07
【问题描述】:

我正在尝试使用 gradle 压缩一个 android 源代码,但我的 gradle 任务没有做任何事情。完成 gradle 同步后,什么也没发生,我的源没有压缩。

我关注了this,但没有成功。

我的摇篮:

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 脚本,请给我一些解决方案。

【问题讨论】:

标签: android android-gradle-plugin zip gradle-task


【解决方案1】:

当我想在将 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")
        }
    }
}

... ...

【讨论】:

  • 拯救了我的一天。感谢分享!
  • archiveName "symbols.zip" 和 destinationDir file("$buildDir/outputs/sym") 已弃用,应替换为 archiveFileName = "symbols.zip" destinationDirectory = file("$buildDir/outputs /sym")
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-17
相关资源
最近更新 更多