Ich mag eine neue Aufgabe in meinem Projekt erstellen wäre zu erstellen, die ein jar-Archiv mit den Klassendateien meines Projektes und den Klassendateien von der schafft Abhängigkeiten (auch 'schattiertes Glas' oder 'Fettglas' genannt).Gradle: ‚Klon‘ original jar Aufgabe eine neue Aufgabe für ein Glas mit Abhängigkeiten
Die Lösung des Gradle Kochbuch ändert die Standard-jar Aufgabe des JavaPlugin vorgeschlagen:
jar {
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
}
Allerdings würde Ich mag den ursprünglichen jar taks halten, da sie eine zusätzliche Aufgabe für das shaeded Glas ist und habe , dh eine Aufgabe, die genau wie die jar Aufgabe verhält, enthält aber die zusätzlichen Dateien nach
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
und hat einen weiteren Sichter ('schattiert).
habe ich versucht, über die Konfiguration der jar Aufgabe wie diese durch Kopieren Eigenschaften zu nehmen:
task shadedJar(type: Jar, dependsOn: configurations.compile) {
dependencies = tasks.jar.taskDependencies
source = tasks.jar.source
manifest = tasks.jar.manifest
includes = tasks.jar.includes
classifier = 'shaded'
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
}
Aber die daraus resultierenden Aufgaben übernehmen nicht die Abhängigkeiten von ‚Glas‘ und das resultierende Glas beinhaltet nicht die Projektklassendateien. Darüber hinaus scheint dieser Ansatz die empfohlene Methode zu sein, eine vorhandene Aufgabe als Vorlage für eine neue Aufgabe zu verwenden.
Was wäre ein empfehlenswertes Konzept für meinen spezifischen Bedarf (die separate shadedJar Aufgabe) und für ‚Klonen‘ Aufgaben sie als Vorlagen für zusätzliche Aufgaben im Allgemeinen zu benutzen?
(Ich bin derzeit noch auf Gradle 1.3, sondern Lösungen für die aktuelle Gradle Version sind auch willkommen)