J'ai une tâche ShadowJar et une Proguard qui produisent deux fichiers jar dans ma compilation Gradle.Comment référencer le fichier de sortie d'une autre tâche Gradle en tant que ziptree?
task obfuscate(type: ProguardTask) {
outjars ..
}
shadowJar {
...
}
task release(type: Jar) {
from shadowJar
from obfuscate
classifier 'all'
}
Mon problème est que dans ce cas, le fichier jar de presse contient le pot d'ombre et les fichiers jar brouillées que deux fichiers dans le pot lui-même. Je voudrais les faire en tant qu'entrées zipTree.
Mon problème est que je ne sais pas comment transformer la référence de la tâche en un zipTree de la sortie réelle de cette tâche.
Mes tentatives me conduisent à from zipTree(shadowJar.outputs.getFiles())
mais cela échoue encore:
> Cannot convert the provided notation to a File or URI: task 'shadowJar' output files.
The following types/formats are supported:
- A String or CharSequence path, for example 'src/main/java' or '/usr/include'.
- A String or CharSequence URI, for example 'file:/usr/include'.
- A File instance.
- A URI or URL instance.
Comment puis-je consulter le fichier jar de sortie des tâches précédentes correctement?
Merci beaucoup. Cela semble être mieux, mais maintenant je ne peux pas trouver la méthode zipTree() pour les arguments [foo/bar/myjar-2017.05.05-all.jar, build_5mt3ethz91ji36qb1vfayplhl $ _run_cl osure12 $ _closure31 @ 28108b8] sur la tâche ': libération' de tapez org.gradle.api.tasks.bundling.Jar. – jabal
Donc, zipTree semble recevoir le nom de fichier de sortie ombre jar – jabal
Je suis un peu confus, car il semble que la méthode 'zipTree' reçoit à la fois une chaîne et une fermeture. Quel exemple avez-vous essayé? –