Kleiner RAKE Überblick…
Dieser Text stammt noch aus meinen Archiven… aber evtl. verschafft es jemandem einen kleinen Überblick…
Rake
Bei Rake handelt es sich um ein einfaches Ruby Programm, welches doch Ähnlichkeiten mit dem
aus der Linuxwelt bekanntem „make“ Tool hat.
Rake hat folgende Vorteile:
● Die Rakedateien sind komplett in standard Rubycode geschrieben. Es müssen keinerlei
XMLFiles angefasst werden, wie es beispielsweise unter „ant“ der Fall ist.
● Die User können die entsprechenden Tasks an die jeweiligen Erfordernisse anpassen.
Als kleines Beispiel soll eine kleine JavaAnwendung compelliert und gestartet werden:
File Hallo.java:
class Hallo{
public static void main(String[] args){
System.out.println(„Hallo Rails“);
}
}
Im Normalfall würden wir für die Compillation:
javac Hallo.java
eingeben (was die Datei Hallo.class erzeugen würde) und anschließend:
java Hallo, um unser Programm zu starten.
Wie wir an diesem Beispiel sehen, besteht also eine Abhängigkeit zwischen den Dateien Hallo.java
und Hallo.class. Immer wenn wir am Quellcode in Hallo.java etwas ändern, müssen wir also auch
die Datei Hallo.class wieder durch Umwandlung in den Bytecode erzeugen. (Später fügen wir noch
ein paar weitere Dateien hinzu).
Nun kommen wir auch schon zu dem Rakefile:
file “Hallo.class” => ["Hallo.java"]
Damit deklarieren wir die Abhängigkeiten mit normalem Rubycode. indem wir den Vorteil nutzen,
mit Ruby Hashargumente on the fly erstellen zu können.
Wenn wir ein C++ Programm geschrieben hätten, könnten wir noch die Abhängigkeiten für das
Ausführbare Programm deklarieren: Zum Beispiel Datei1.o und Datei2.o > Prog.exe. Dieser Schritt
entfällt natürlich bei diesem kleinen Javaprogramm.
Jetzt fügen wir in unser Rakefile das Herzstück für die Erstellung des Files Hallo.class ein:
file ‘Hallo.class’ => ["Hallo.java"] do
sh “javac Hallo.java”
end
und Testen die Funktion, in dem wir
rake hallo.class
eingeben!
Sie sehen dass Rake nun javac ausführt und uns somit eine Hallo.class erstellt.
Führen Sie das Programm mit java Hallo aus:
Auf der Konsole wird „Hallo Rails“ ausgegeben.
Nun werden Sie sich denken, „was soll das, dass kann auch ein normales Batchprogramm“, und
zugegeben ist der Vorteil von Rails nun noch nicht zu erkennen.
Ändern Sie im Programm Hallo.java mal die Ausgabe in „Hallo Welt“ und führen Sie wieder rake
Hallo.class aus.
Sie werden feststellen, dass wieder javac ausgeführt wird.
Geben Sie nun nochmal rake Hallo.class ein! und ?!
Der Vorteil sollte jetzt schon klarer sein: Rake behandelt nur das bearbeitete File und bei größeren
Projekten nur die wirklich benötigten Dateien und ihre erforderlichen Abhängigkeiten.
Natürlich ist rake bei kleinen Projekten überflüssig, wenn Sie aber Programme compellieren
möchten, die wesentlich mehr Dateien haben und eben Abhängigkeiten zwischen diesen Dateine
bestehen, werden Sie rake bald sehr zu schätzen wissen.
Leave a Reply
You must be logged in to post a comment.