2011-03-15 14 views
2

用我的Clojure/AppEngine上魔法項目,我目前啓動東西是這樣的:如何自動啓動jetty/appengine-magic和swank?

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有:

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

另一方面,不是AE /開始,我可以使用,我認爲:

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

我想把所有這一切放在一個命令後面。

所有通過-mainlein run一起使用或編寫一個leiningen插件來處理此問題的所有嘗試均因命名空間/路徑問題而失敗。

那麼該怎麼辦?

+0

你能在什麼命名空間/路徑的問題,你遇到了更大呢? – mac 2011-03-17 13:36:26

回答

2

感謝有人不願意回答的例子,我現在有一個很好的解決方案。

除了我project.clj:

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

將在運行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)