Mam system kompilacji składający się z kilku podkatalogów z projektami, w których w każdej z nich jest oddzielna rastief (lub kilka plików rake). Żaden katalog najwyższego poziomu nie ma pliku rake, który przechodzi przez wszystkie podkatalogi i wywołuje rake przez: system ("rake"), otrzymuje pakiety wynikowe i wysyła je do odpowiedniego komputera. Czy istnieje bardziej elegancki sposób robienia tego? Próbowałem Rake.application.load(), ale to nie wydaje się przyjmować żadnego argumentu, który plik musi być załadowany (jak wspomniałem, czasami są 2 rakefiles w każdym podkatalogu),Multifile rake build
5
A
Odpowiedz
2
Ok, mam rozwiązanie, które opiera się na tym, co knoopx powiedział. Oto mój plik główny:
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
Każdy plik rake w podkatalogu musi zawierać definicję domyślnego zadania.
1
Po prostu stwórz nowy Rakefile u podstaw swojej dużego projektu i dynamicznie załadować podprojekcie Rakefiles
Dir.glob(File.join(File.dirname(__FILE__), '**', 'Rakefile')).each do |tasks|
load tasks
end
+0
To częściowo rozwiązuje problem. Mogę wywoływać zadania z innych plików, ale wygląda na to, że zależności nie są przetwarzane. Więc o główny plik z kodem, który wywołuje sub Rakefile z zadanie: default =>: foo zadanie: foo zrobić stawia "foo" koniec zadanie "foo" nie nazywa – paszczi
Powiązane problemy
- 1. iPhone app build build warning
- 2. Angular-cli build (ng build) na Teamcity
- 3. Rake zadań w innych plikach
- 4. Różnica między aktywami rake: prekompilacja i atuty rake: clobber
- 5. rake db: create vs rake db: create: wszystko
- 6. Jak dodać zadanie Rake do domyślnego zadania Rake?
- 7. Jaki jest cel Rake?
- 8. render_to_string z zadania rake
- 9. Rails - Pierwsze błąd Rake
- 10. Rake tylko jedna migracja
- 11. Kontynuuj Rake po awarii
- 12. Komenda Heroku rake
- 13. Statystyki rake i ogórek
- 14. Zadanie wielowątkowe rake
- 15. Jak wywołać zadanie rake w rspec
- 16. Jak uruchamiać zadania rake z konsoli?
- 17. Jak dodać "test rake" do projektu
- 18. Jenkins Partial Build/Modular Build na Commit Hook
- 19. Cel nie działa podczas używania BeforeTargets = "Build" na serwerze Build
- 20. Utwórz niestandardowy typ kompilacji Build - dla Gradle Build Init Plugin?
- 21. Wykonaj zadanie rake z poziomu migracji?
- 22. Awaria TensorFlow Bazel build
- 23. Jenkins Workflow Build Information
- 24. Krok pre-build makefile
- 25. Android Ant Build
- 26. TeamCity vs Team Build
- 27. play ramy niespójne build
- 28. iOS 4 Build SDK
- 29. Android Studio Build/Clean
- 30. Q_ASSERT release build semantics
Podobne https://stackoverflow.com/questions/28238838/rakefile-to-process-multiple-projects –