Rake (Software)

Rake
Basisdaten

EntwicklerJim Weirich
Aktuelle Version13.0.1[1]
(12. November 2019)
Betriebssystemplattformunabhängig
ProgrammierspracheRuby
KategorieProgrammierwerkzeug
LizenzMIT-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.[2]

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.[3][4]

Beispiele

Es folgt ein einfaches Rakefile zum Bauen eines in der Programmiersprache C entwickelten HelloWorld-Programms als Beispiel:

  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

Das nächste Beispiel zeigt die Verwendung für ein einfaches Rezept:

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 1{{frac|1|2}} cup flour"
  end
  task :milk do
    puts "add 1{{frac|1|4}} cup milk"
  end
  task :egg do
   puts "add 1 egg"
  end
  task :baking_powder do
   puts "add 3{{frac|1|2}} teaspoons baking powder"
  end
end

Siehe auch

Weblinks

Einzelnachweise

  1. Release 13.0.1. 12. November 2019 (abgerufen am 12. November 2019).
  2. RAKE – Ruby Make. Abgerufen am 4. Oktober 2018 (englisch).
  3. Rak: Simple Example. Abgerufen am 4. Oktober 2018 (englisch).
  4. Rake: Glossary. Abgerufen am 4. Oktober 2018 (englisch).