2016-10-21 2 views
0

Ich möchte mehrere Zip-Dateien extrahieren, die Abhängigkeiten für mein Build sind.Extrahieren Sie ZIP-Dateiabhängigkeiten in separate Verzeichnisse mit Gradle

Im Moment habe ich:

project.tasks.create(name: 'extractExternalNativeDependencies', type: Copy) { 
     from { 
      configurations.externalNative.collect { 
       zipTree(it) 
      } 
     } 
     into project.file(".externalNativeDependencies") 
    } 

Das extrahiert alle Abhängigkeiten in den gleichen Ordner. Ich möchte, dass jede Zip-Datei stattdessen in einen eigenen Ordner extrahiert wird.

Ich habe gesehen Gradle extract multiple dependencies each to a different directory jedoch, dass "Arbeitslösung" nicht wirklich funktioniert. Es schlägt fehl, wenn der Build zweimal ohne Reinigung ausgeführt wird und wirklich nicht ausgeführt werden sollte, wenn die Quell-Zips aktuell sind.

Antwort

1

Die folgende task Konfiguration erweitert jede Abhängigkeit in einen eigenen Unterordner:

task extractExternalNativeDependencies(type: Copy) { 
    configurations.externalNative.collect { dependency -> 
     from(zipTree(dependency)) { 
      into dependency.name 
     } 
    } 

    into project.file(".externalNativeDependencies") 
} 
+0

ich stattdessen am Ende mit resolvedConfiguration, weil das die Abhängigkeit Name Namen anstelle der heruntergeladenen Datei verwendet: 'configurations.externalNative.resolvedConfiguration .resolvedArtifacts.each { Artefakt -> project.copy { aus (project.zipTree (artifact.file)) in neue Datei (outputDir, artifact.name) } } ' –

Verwandte Themen