Skip to content

In 8 Schritten zur Web-App mit Clojure

clojures logo

In meinem Staunen, wie schnell man eine -Web-Anwendung am Laufen hat, habe ich an einem unbedarften Rechner mal ausprobiert, wie schnell das wirklich geht. Quasi von “Java ist installiert” bis “Clojure-Web-Anwendung läuft”. Zum Einsatz kommt das Clojure-Web-Framwork Noir.

Folgende Schritte sind (unter Windows) dazu nötig – der ganze Ablauf dauert vielleicht 10 Minuten:

  1. Verzeichnis anlegen, in das alle Clojure-Sachen kommen sollen. Zu Referenzzwecken nenne ich es ROOT.

  2. Leiningen: das Skript lein.bat runterladen und in ROOT ablegen.

    ist ein (inzwischen das?) Dependency-Management- und Buildtool für Clojure.

  3. Ebenso mit wget verfahren: Runterladen und ins ROOT-Verzeichnis legen.

    wget wird von Leiningen benötigt um Abhängigkeiten selbst aus dem Web runterladen zu können.

  4. Jetzt eine Kommandozeile in ROOT öffnen und lein self-install eingeben.

    Leiningen installiert sich jetzt selbst, d.h. es lädt zwei oder drei JARs aus einem MAVEN-Repository und packt diese in ein dafür angelegtes Verzeichnis %HOME%\.lein.

Nach diesen drei Schritten hat man alles so eingerichtet, dass man mit der clojure-Entwicklung loslegen kann. Mittels Leiningen könnte man jetzt ein normales Projekt anlegen: lein new my-project. Aber wir wollen noch ein bisschen mehr.

  1. lein plugin install lein- 1.2.1

    Jetzt geht’s Richtung : Es wird ein Plugin für Leiningen installiert: lein-noir

  2. lein noir new my-website

    Dieser Aufruf erzeugt erstmal ein Leiningen-Projekt. Dieses Projekt beinhaltet aber bereits die beispielhafte Noir-Anwendung…

  3. cd my-website

    Es wird ins Projektverzeichnis gewechselt, damit für Leiningen klar ist, mit welchem Projekt zu arbeiten ist.

  4. ../lein run

    …startet die Noir-Anwendung. Ab jetzt lauscht ein Jetty-Server auf Port 8080 am localhost auf eingehende Browser-Anfragen: http://localhost:8080/.

Noch ein paar Anmerkungen

In der project.clj-Datei, die sich unter my-website befindet, werden die Abhängigkeiten für Leiningen verwaltet. D.h. hierdurch bekommt Leiningen raus, welche JARs aus den zentralen MAVEN-Repositories zu laden sind.
Die project.clj-Datei bietet noch einige Einstellungsmöglichkeiten mehr für Leiningen und die zu startende JVM. Das sei hier aber nur im Vorbeigehen erwähnt.

Zu Beginn (es wurden schon zwei Abhängigkeiten für den Zugriff auf eine MySql-Datenbank hinzugefügt) sieht die project-Datei folgendermaßen aus:


GeSHi Error: GeSHi could not find the language clojure (using path /home/pacs/aho04/doms/gungfu.de/subs/blog/wp-content/plugins/wp-synhighlight/geshi/geshi/) (code 2)

Toll ist, dass mit ../lein repl eine REPL gestartet werden kann, mit der man entweder direkt die Webanwendung programmiert oder erstmal ein paar Experimente in Sachen Clojure unternehmen kann.

Um Leiningen von überall starten zu können, ohne das lästige ../ eingeben zu müssen, sollte man den Pfad zu Leiningen in die Umgebungsvariable PATH aufnehmen. Man kann lein.bat zuvor auch in ein dafür geeignetes Verzeichnis verschieben. Das Skript verträgt das. ;-)

Bei Änderungen an Source-Dateien im Noir-Projekt sorgt Noir automatisch dafür, dass diese nachgeladen werden. D.h. der Server muss nicht neu gestartet werden, um Änderungen zu sehen.

Die Erklärungen auf der Noir-Homepage sind so kompakt, dass man anhand dieses Materials schnell eine eigene kleine Web-Anwendung zusammenschustern kann.

Viel Spaß dabei…

Post a Comment

Your email is never published nor shared. Required fields are marked *