Frage

Mit meinem Clojure/Appengine-Magic-Projekt beginne ich derzeit so:

lein repl

(doto 'tlog.core require in-ns)
(compile 'tlog.core)
(ae/start tlog-app)
(require 'swank.swank) (swank.swank/start-repl 4005)

tlog.core hat:

(:require [appengine-magic.core :as ae])

Alternativ könnte ich anstelle von AE/Start verwenden, denke ich:

(use 'ring.adapter.jetty)
(run-jetty (var tlog.core/tlog-app-handler) {:port 8080})

Ich möchte das alles hinter einen einzelnen Befehl stellen.

Alle Versuche, dies über a zu bewältigen -main benutzt mit lein run oder das Schreiben eines LININGEN -Plugins aufgrund von Namespace/Pfadproblemen fehlgeschlagen.

Wie kann es also gemacht werden?

War es hilfreich?

Lösung

Dank eines Beispiels von jemandem, der es vorgezogen hat, hier nicht zu antworten, habe ich jetzt eine ziemlich gute Lösung.

Ergänzung zu meinem Projekt.clj:

:repl-init-script "src/tlog/init_repl.clj"

Wird beim Laufen ausgelöst lein repl.

init-repl.clj:

(ns user
  "Init script for Leiningen REPL."
  (:require [appengine-magic.core :as ae])
  (:use [clojure.stacktrace]
        [clojure.contrib.repl-utils :only (show)]
        [tlog.core]))

(defn reload!
  "Force a reload of everything."
  []
  (require 'tlog.core :reload-all))

(compile 'tlog.core)
(ae/serve tlog-app)
(println "Interactive Jetty instance started. To force a reload: (reload!)")

(require 'swank.swank) (swank.swank/start-repl 4005)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top