Chciałbym utworzyć nowe zadanie w moim projekcie, które tworzy archiwum słoików z plikami klas mojego projektu i plikami klas zależności (zwane także "zacienionym słojem" lub "tłustym słojem").Gradle: "klon" oryginalne zadanie jar, aby utworzyć nowe zadanie dla słoika, w tym zależności
Proponowana przez kucharskiej Gradle rozwiązanie modyfikuje standardowe zadanie słoik z JavaPlugin:
jar {
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
}
Jednak chciałbym zachować oryginalne ło jar jak to jest i mają dodatkowe zadanie dla shaeded słoiku , czyli zadania, które zachowuje się dokładnie tak samo jak zadanie słoik, ale zawiera dodatkowe pliki według
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
i ma innego klasyfikatora („cieniowane”).
Próbowałem przejąć konfiguracji zadania jar kopiując właściwości tak:
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) } }
}
ale wynikowe zadania nie przejmie zależności od „jar” i uzyskaną słoik nie obejmuje pliki klas projektu. Dodatkowo podejście to wydaje się uciążliwe, aby być zalecanym sposobem wykorzystania istniejącego zadania jako szablonu dla nowego.
Jakie jest zalecane podejście do mojej konkretnej potrzeby (oddzielne zadanie cieniowaneJar) i do "klonowania" zadań, aby wykorzystać je jako szablony do ogólnych zadań dodatkowych?
(jestem obecnie wciąż na Gradle 1.3, ale rozwiązania dla obecnej wersji Gradle są również mile widziane)