Gradle: Wie führe ich eine benutzerdefinierte Aufgabe aus, nachdem eine Android-Bibliothek erstellt wurde?

Ich besitze eine Android-Bibliothek, die ein debug.aar und ein release.aar generiert. Ich muss das release.aar in einen anderen Ordner kopieren, um auf einen anderen Teil des Projekts zu verweisen.

Was ich jetzt getan habe, ist in dieser Android-Bibliothek build.gradle. Ich habe eine Aufgabe definiert:

task copyAARToCommonLibs(type: Copy) {
    from('../build/outputs/aar') {
        include '*-release.arr'
    }
    into '../SomeSampleApps/libs'
}

Ich versuche, diese Task auszuführen, nachdem das Arr generiert wurde. Ich gehe davon aus, dass es sich um die Phase assembleRelease handelt. Deshalb habe ich dies in diesem build.gradle versucht.

assembleRelease.doLast{
   copyAARToCommonLibs
}

Ich baue das Gesamtprojekt mit

 gradle build

Aber diese Aufgabe wird ganz am Anfang des gesamten Prozesses ausgeführt.

Ich habe es auch versucht:

 applicationVariants.all { variant ->
     variant.assemble.doLast {
         copyAARToCommonLibs
     }
 }

inside android {} property (Ich vermute, so heißt es?) Beim Ausführen von gradle build wurde der folgende Fehler angezeigt: Die Eigenschaft 'applicationVariants' konnte nicht gefunden werden.

Ich bin dann auf dieses Snippet gestoßen:

tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn copyAARToCommonLibs }

Aber es scheint so, als würde die Aufgabe nach dem Kompilieren ausgeführt. Ich weiß nicht genau, wie ich sie ändern soll, damit sie nach dem Zusammenbau ausgeführt wird.

Kann jemand mich bitte korrigieren, wo ich falsch gemacht habe und wie kann ich diese Kopieraufgabe ausführen, nachdem die .arr-Datei generiert wurde?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage