Как заархивировать папку с помощью Android Gradle?

Я пытаюсь сжать источник Android, используя Gradle, но моя задача Gradle ничего не делает. После завершения синхронизации gradle ничего не происходит, мой источник не заархивирован.

Я следовал за этим, но не работал.

Мой 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'
 }

Это мои сценарии, пожалуйста, предложите мне решение.

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")
        }
    }
}

... ...
Другие вопросы по тегам