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 para .NET
- 5. Rastrillo Tarea pedidos
- 6. rastrillo variable de tarea
- 7. carpetas múltiple Fuente: Evitar la compilación implícita con Ant
- 8. definición múltiple de la variable espacio de nombres, C++ compilación
- 9. God stop resque workers rastrillo
- 10. Tarea de rastrillo de Crontab?
- 11. momento de 'rastrillo activos: precompilación'
- 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. rastrillo --tasks descripción completa (sin cortar)
- 16. alias Invocación de bash en el rastrillo
- 17. pasar parámetros rastrillo para tareas dependientes
- 18. Prueba de consola y rastrillo Rails: unidades
- 19. Ruby on Rails: Depuración de tareas rastrillo
- 20. Pass hash como parámetro a Rastrillo Tarea
- 21. Problemas para eliminar el rastrillo 0.9
- 22. rastrillo falla con "temporizador expiró virtual"
- 23. ¿Por qué faltan algunas tareas de rastrillo?
- 24. rieles rastrillo DB: error de volcado
- 25. Run inicializador excepto para tareas rastrillo
- 26. múltiple depende de tarea ant
- 27. Cómo configurar la compilación y la prueba de configuración múltiple de jenkins
- 28. ¿Es posible evitar la herencia múltiple de clases base específicas en tiempo de compilación?
- 29. spl_autoload_register múltiple
- 30. Configuración de compilación SBT
Relacionados https://stackoverflow.com/questions/28238838/rakefile-to-process-multiple-projects –