Estoy intentando crear una tarea Zip que crearía un paquete de distribución para mi proyecto que contiene archivos jar y war del proyecto (y potencialmente otros artefactos creados por la tarea assemble
).Cómo crear un archivo de distribución (zip) que contenga los archivos de proyecto y guerra en Gradle
así que traté de escribir este guión sencillo
task dist(dependsOn: 'assemble', type: Zip){
into('lib'){
from 'build/libs' //contains jar and war files
}
... //other stuff
}
Tarea dist
depende de assemble
ya que convenientemente incluye las tareas que crean archivos jar y de guerra.
Pero si trato de ejecutar que, Gradle se queja con este mensaje de error:
Circular dependency between tasks. Cycle includes [task ':assemble', task ':dist'].
He comprobado el specification for assemble
task, y que está claramente escrito que assemble
tarea de forma automática dependsOn
todas las tareas de archivo en el proyecto , que obviamente incluye mi tarea dist
. Y parece que no hay forma de evitarlo.
¿Cuál sería el correcto forma de hacerlo en gradle? ¿Cómo puedo hacer una tarea zip que depende de la tarea assemble
? Podría hacer que la tarea dist
dependa explícitamente de las tareas jar
y war
, pero creo que eso viola un poco la encapsulación.
Estoy usando gradle-1.0-milestone-3.
¡Gracias de antemano!
Gracias. Se ve bien, pero ¿no incluiría también el contenido de todas las tareas Jar en mi zip? (Lo intentaré más tarde cuando llegue a casa). Originalmente, lo que quería era crear un paquete de distribución que contenga salidas de tareas 'jar' y' war' * solo *. Su solución debería ser la solución por el momento, pero si añadiera algunas tareas de jar auxiliares, más adelante parecería que terminarían en mi zip. – rodion
lo siento, pensé que te refieres a todas las tareas de tipo Jar y War. Reformé la muestra anterior para adaptarla a sus necesidades. Espero que nos acerquemos a una solución adecuada :-) –
Funciona perfectamente, gracias! – rodion