J'ai quelques tâches Rake que j'aimerais utiliser dans mes Rakefiles. Est-il possible d'inclure des tâches définies dans un rakefile d'un autre rakefile?Est-il possible d'utiliser dans un Rakefile des tâches d'un autre?
Répondre
Les fichiers Rake ne sont rien d'autre que les fichiers ruby. Il suffit donc de charger le fichier A contenant les autres tâches dans votre fichier B et elles seront disponibles lorsque B sera exécuté.
Par exemple, si vous mettez le code suivant dans votre Rakefile
Dir['tasks/*.rake'].each { |file| load(file) }
alors vous pouvez créer autant de fichiers .rake
dans le sous-dossier tasks
et les appeler de la Rakefile
principale.
Je viens de faire quelque chose de similaire à ce qui suit:
task :master do
`rake slave`
end
task :slave do
puts "Hello World"
end
Peut-être un peu rudimentaire, mais il fait le travail.
Je crois que cette stratégie, même si elle fonctionne, n'est pas idéale. Essayez plutôt: 'Rake :: Task [: 'slave']. Invoke' pour la tâche principale. –
Yup. Je fais toujours ceci, pour a) garder un domaine par fichier (toutes les tâches liées à gem dans 'gem.rake', toutes les tâches liées aux tests dans' test.rake', toutes les tâches liées à la documentation dans 'doc.rake') et b) partagent des tâches communes entre différents projets (appelant RDoc, RSpec, RubyGems est vraiment le même, indépendant du projet spécifique). –