Ho un sistema di compilazione costituito da diverse sottodirectory con progetti, in cui in ciascuna di esse è presente un rakiefile separato (o una coppia di rakefile). No, la directory di livello superiore ha un rakefile che passa attraverso tutte le sottodirectory e chiama rake tramite: system ("rake"), ottiene i pacchetti risultanti e li invia al computer appropriato. C'è un modo più elegante per farlo? Ho provato Rake.application.load() ma questo non sembra accettare alcun argomento su quale file deve essere caricato (come ho menzionato a volte ci sono 2 rakefiles in ogni sottodirectory),Creazione rastrello multifile
risposta
Ok, ho la soluzione che si basa su ciò che knoopx detto. Qui è il mio master file:
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
Ogni rakefile nella sottodirectory deve contenere definizione di attività predefinita.
Basta creare un nuovo Rakefile alla radice del vostro grande progetto e dinamicamente caricare il sotto-progetto Rakefiles
Dir.glob(File.join(File.dirname(__FILE__), '**', 'Rakefile')).each do |tasks|
load tasks
end
Questo risolve parzialmente il problema. Sono in grado di chiamare attività da altri file ma sembra che le dipendenze non vengano elaborate. Quindi, avendo file principale, con il codice che chiama sub rakefile con compito: default =>: foo compito: foo do mette "pippo" fine compito "foo" non è chiamato – paszczi
- 1. jQuery MultiFile pulsante di scelta file
- 2. rastrello variabile compito
- 3. Rails 3.2: rastrello 10.0.3 richiesto
- 4. rastrello interrotto! inizializzata costante Mysql2
- 5. God stop resque workers rastrello
- 6. compiti "Private" rastrello con l'ambiente delle guide
- 7. parametri passa rastrello per attività dipendenti
- 8. rotaie rastrello rotte dove sono da
- 9. Problemi di installazione gitlab-5.0 - rastrello interrotto
- 10. Rastrello di accesso Descrizione dell'operazione dall'interno dell'attività
- 11. rastrello --tasks descrizione completa (non tagliate)
- 12. rilascio rastrello quando rilascia un gioiello
- 13. rastrello interrotto! metodo non definito `map 'per: nome: Simbolo
- 14. Combinando molti compiti rake in un compito rastrello
- 15. versioni rastrello in diversi set di pietre rvm
- 16. Dipendenza del rastrello non in esecuzione ma invoca i lavori
- 17. Come usare thor invece di rastrello nel rail
- 18. rastrello interrotto! ERRORE: deve essere proprietario della banca dati
- 19. Caricare solo raschi rastrello in un determinato ambiente?
- 20. comando di sistema Eseguire con il rastrello fuori portata Bundle
- 21. Come faccio a copiare un file da una gemma alla mia applicazione Rails utilizzando rastrello
- 22. Il rastrello si interrompe a causa del metodo non definito `inet '
- 23. Come elencare tutte le attività di rake di Rails 3? rastrello -T sembra incompleto
- 24. Test di rastrello - crea un errore YAML, come posso risolvere questo problema?
- 25. "rastrello interrotto! Livello di stack troppo profondo" durante l'implementazione su Heroku
- 26. nuovo su rotaie, impostazione db poi rastrello in esecuzione db: creare/migrare
- 27. Perché ricevo Constant non inizializzato per un compito rastrello, Rails 4.1.8
- 28. Qual è la differenza tra le rastrelliere: congelare: gemme e gemme di rastrello: decomprimere?
- 29. rastrello interrotto! Hai già attivato il rake 10.0.2, ma il tuo Gemfile richiede il rake 0.9.2.2
- 30. Rails rastrello problema aggiornamento - Impossibile trovare il rake-10.4.2 in una qualsiasi delle fonti
https://stackoverflow.com/questions/28238838/rakefile-to-process-multiple-projects –