Tengo un sistema de compilación que consta de varios subdirectorios con proyectos, donde en cada uno de ellos hay un rakiefile separado (o un par de rakefiles). No, el directorio de nivel superior tiene un rakefile que pasa por todos los subdirectorios y llamadas rake a través de: system ("rake"), obtiene los paquetes resultantes y los envía a la máquina adecuada. ¿Hay una forma más elegante de hacer esto? He intentado con Rake.application.load() pero parece que no acepta ningún argumento sobre qué archivo debe cargarse (como ya mencioné a veces hay 2 rakefiles en cada subdirectorio),Rastrillo múltiple compilación
Respuesta
Ok, tengo una solución que se basa en lo que knoopx dicho. Aquí está mi archivo maestro:
task :default do
FileList["*/**/rakefile*.rb"].each do |project|
# clear current tasks
Rake::Task.clear
#load tasks from this project
load project
if !Rake::Task.task_defined?(:default)
puts "No default task defined in #{project}, aborting!"
exit -1
else
dir = project.pathmap("%d")
Dir.chdir(dir) do
default_task = Rake::Task[:default]
default_task.invoke()
end
end
end
puts "Done building projects"
end
Cada rakefile en subdirectorio debe contener la definición de la tarea predeterminada.
Solo crea un nuevo Rakefile en la raíz de su gran proyecto y dinámicamente cargar su sub-proyecto Rakefiles
Dir.glob(File.join(File.dirname(__FILE__), '**', 'Rakefile')).each do |tasks|
load tasks
end
Esto resuelve parcialmente el problema. Puedo llamar tareas desde otros archivos pero parece que las dependencias no se procesan. Así, con el archivo principal, con su código que llama sub Rakefile con tarea: por defecto =>: foo tarea: foo hacer pone "foo" final tarea "foo" no se llama – paszczi
- 1. Continuar Rastrillo tras error
- 2. activos rastrillo precompilación fallaron
- 3. tiempo de compilación: definición múltiple de 'principal'
- 4. rastrillo variable de tarea
- 5. Rastrillo para .NET
- 6. Rastrillo Tarea pedidos
- 7. definición múltiple de la variable espacio de nombres, C++ compilación
- 8. carpetas múltiple Fuente: Evitar la compilación implícita con Ant
- 9. Tarea de rastrillo de Crontab?
- 10. momento de 'rastrillo activos: precompilación'
- 11. God stop resque workers rastrillo
- 12. ¿Cómo el rastrillo recursivo? - o alternativas adecuadas
- 13. ya ha activado el rastrillo 0.9.0, pero su Gemfile requiere rastrillo 0.8.7
- 14. Inserción múltiple múltiple de SQL
- 15. rieles rastrillo DB: error de volcado
- 16. rastrillo --tasks descripción completa (sin cortar)
- 17. alias Invocación de bash en el rastrillo
- 18. Ruby on Rails: Depuración de tareas rastrillo
- 19. rastrillo falla con "temporizador expiró virtual"
- 20. pasar parámetros rastrillo para tareas dependientes
- 21. Prueba de consola y rastrillo Rails: unidades
- 22. Run inicializador excepto para tareas rastrillo
- 23. Pass hash como parámetro a Rastrillo Tarea
- 24. ¿Por qué faltan algunas tareas de rastrillo?
- 25. Problemas para eliminar el rastrillo 0.9
- 26. múltiple depende de tarea ant
- 27. ¿Es posible evitar la herencia múltiple de clases base específicas en tiempo de compilación?
- 28. Cómo configurar la compilación y la prueba de configuración múltiple de jenkins
- 29. spl_autoload_register múltiple
- 30. Configuración de compilación SBT
Relacionados https://stackoverflow.com/questions/28238838/rakefile-to-process-multiple-projects –