¿Hay una manera de ejecutar una tarea rastrillo sin correr los requisitos previos?
Pregunta
¿Hay un interruptor de línea de comandos que me falta?
En el momento que estoy teniendo que hacer esto:
#task :install => :build do
task :install do
end
Solución
Me parece que han resuelto este problema mediante la simple adición de tareas adicionales en el formato "taskname_no_prerequisites". Así por ejemplo, en el código de abajo ejecutar "install_no_prerequisites rastrillo" que no causa "acumulación" para ser ejecutado.
desc "Build"
task :build do
puts "BUILDING..."
end
desc "Install"
task :install => :build do
puts "INSTALLING..."
end
Rake::Task::tasks.each do |task|
desc "#{task} without prerequisites"
task "#{task}_no_prerequisites".to_sym do
task.invoke_without_prerequisites
end
end
module Rake
class Task
def invoke_without_prerequisites
execute
end
end
end
Otros consejos
Si se define una dependencia de una tarea, siempre se ejecuta en primer lugar. Sin embargo, puede crear sus tareas de forma individual y luego agregar junto con otra tarea, como esto:
task :build do
...
end
task :install do
...
end
task :go => [:build, :install]
y después puede llamar a la construcción o instalación de tareas de forma independiente, o ejecutar la secuencia con la tarea de viaje.
rake build
rake install
rake go
hago esto mucho, en realidad. que lo hace muy conveniente para mí para ejecutar los pasos individuales cuando quiero, y tienen la secuencia más larga de pasos cuando los necesito.