Rake (Software)
| Rake
| |
|---|---|
| [[Datei:Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.|150px]] | |
| Basisdaten
| |
| Maintainer | Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden. |
| Entwickler | Jim Weirich |
| Erscheinungsjahr | Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden. |
| Aktuelle Version | Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden. (Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.) |
| Aktuelle Vorabversion | Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden. (Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.) |
| Betriebssystem | plattformunabhängig |
| Programmiersprache | Ruby |
| Kategorie | Programmierwerkzeug |
| Lizenz | MIT-Lizenz |
| github.com/ruby/rake | |
Rake (deutsch: „Harke“) ist ein Software-Task-Management- und Build-Management-Werkzeug, das vor allem Programmierer nutzen, die in der Programmiersprache Ruby entwickeln. Mit Rake können Tasks (deutsch: „Aufgaben“) definiert und Abhängigkeiten beschrieben werden. Die Tasks können in Namespaces gruppiert werden.<ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Ehemals im Vorlage:Referrer (nicht mehr online verfügbar) (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref>
Rake ähnelt SCons und make, weist im Vergleich zu diesen aber auch einige entscheidende Unterschiede auf. Das Werkzeug ist in Ruby geschrieben und die Rakefiles (äquivalent zu Makefiles von make) verwenden Ruby-Syntax. Der ursprüngliche Autor war Jim Weirich (1956–2014).
Rake verwendet Rubys anonyme Funktionsblocks, um verschiedene Tasks zu definieren, was die Verwendung von Ruby-Syntax ermöglicht. Es verfügt über eine Bibliothek von häufig verwendeten Tasks, zum Beispiel Funktionalität für typische Dateimanipulations-Tasks und eine Bibliothek für das Aufräumen von kompilierten Dateien (clean-Task). Ähnlich wie make kann Rake auch Tasks auf der Basis von Mustern synthetisieren, zum Beispiel um einen Compilations-Task aus Mustern für Dateinamensendungen zu erzeugen. Rake gehört heute zum Standardumfang von Ruby ab Version 1.9.<ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Ehemals im Vorlage:Referrer (nicht mehr online verfügbar) (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref><ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Ehemals im Vorlage:Referrer (nicht mehr online verfügbar) (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref>
Beispiele[Bearbeiten]
Es folgt ein einfaches Rakefile zum Bauen eines in der Programmiersprache C entwickelten HelloWorld-Programms als Beispiel:
<syntaxhighlight lang="ruby">
file 'hello.o' => ['hello.c'] do sh 'cc -c -o hello.o hello.c' end file 'hello' => ['hello.o'] do sh 'cc -o hello hello.o' end
</syntaxhighlight>
Das nächste Beispiel zeigt die Verwendung für ein einfaches Rezept:
<syntaxhighlight lang="ruby"> namespace :cake do
desc 'make pancakes'
task :pancake => [:flour,:milk,:egg,:baking_powder] do
puts "sizzle"
end
task :butter do
puts "cut 3 tablespoons of butter into tiny squares"
end
task :flour => :butter do
puts "use hands to knead butter squares into 1Vorlage:Frac cup flour"
end
task :milk do
puts "add 1Vorlage:Frac cup milk"
end
task :egg do
puts "add 1 egg"
end
task :baking_powder do
puts "add 3Vorlage:Frac teaspoons baking powder"
end
end </syntaxhighlight>
Siehe auch[Bearbeiten]
Weblinks[Bearbeiten]
- Rake documentation
- RubyForge project page for Rake
- Using the Rake build language by Martin Fowler
- Custom Rake Tasks at railscasts.com
- Rake Tutorial at lukaszwrobel.pl
Einzelnachweise[Bearbeiten]
<references />