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

Я пытаюсь заархивировать источник Android с помощью 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'
 }

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


person Anshuman Pattnaik    schedule 31.08.2017    source источник
comment
Возможный дубликат stackoverflow.com/questions/36863456/   -  person AlexTa    schedule 31.08.2017
comment
Да, я пробовал это, но это не сработало, пожалуйста, помогите мне   -  person Anshuman Pattnaik    schedule 31.08.2017
comment
Возможный дубликат задачи Gradle для создания zip-архива каталог   -  person AlexTa    schedule 31.08.2017
comment
Да, чувак, я пробовал это, но не сработало, не могли бы вы предложить мне какое-нибудь решение.   -  person Anshuman Pattnaik    schedule 31.08.2017
comment
Решение вышеупомянутого вопроса сработало для меня. Но, может быть, вам действительно нужно запустить задачу myZip, а не только обновить Gradle? Потому что мне нужно было запустить мою задачу zip вручную.   -  person Thor_Bux    schedule 27.03.2018


Ответы (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")
        }
    }
}

... ...
person Datow King    schedule 18.05.2019
comment
Спас мой день. Спасибо, что поделился! - person dudi; 27.12.2019
comment
имя_архивасимволы.zip и файл_назначения_каталога($buildDir/outputs/sym) устарели и должны быть заменены на имя_архива_имя_символов.zip - person dudi; 27.12.2019