2010-01-17 14 views
5

tengo dos tareas de nivel superior: SupongamosRastrillo Tarea pedidos

task :publicBuild => [:zipSourceCode, :copyPrivateKey] 
task :internalBuild => [:copyPrivateKey] 

Para la tarea internalBuild, no quiero a zip código fuente - Sólo quiero la clave privada. Pero para un publicBuild, quiero hacer ambas cosas. Pero debo garantizar que para el publicBuild, la tarea zipSourceCode se ejecuta antes de la tarea copyPrivateKey (no deseo que el código fuente del código postal contenga la clave pública).

Una dependencia como copyPrivateKey => zipSourceCode no funcionaría, ya que significaría que para internalBuild, sería llamar zipSourceCode, lo que no quiero.

Lo que quiero decir rastrillo es "si estas dos tareas se van a ejecutar, debe hacerlo primero, pero ambas son opcionales". es posible?

+3

¿No los ejecuta en el orden en que los especifica en la matriz? Eso es sorprendente, ya que las matrices están ordenadas en Ruby ... y no puedo encontrar ninguna pregunta como esta en la red, lo cual es igualmente sorprendente, ya que parece totalmente inverosímil que nadie más se haya encontrado con este problema ... – tfwright

+0

Los ejecuta en el orden; simplemente no esperaba poder confiar en ese orden. Tal vez debería haber leído la documentación más a fondo. ¡Gracias! –

Respuesta

4

Como dijo floyd ... las tareas deben realizarse en el orden en que aparecen en la matriz de dependencias.

+1

... siempre que ': zipSourceCode' no dependa de una tarea que a su vez dependa de': copyPrivateKey'. Eso haría que se ejecuten en el orden incorrecto cuando Rake resuelva las dependencias. –

+0

ah sí. cierto. gracias James :) –

Cuestiones relacionadas