如何自动启动 jetty/appengine-magic 和 swank?

发布于 2024-10-21 21:32:40 字数 581 浏览 2 评论 0原文

在我的 Clojure/appengine-magic 项目中,我目前的启动方式如下:

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/start,我想:

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

我想将所有这些放在一个命令后面。

由于命名空间/路径问题,通过与 lein run 一起使用的 -main 或编写 leiningen 插件来处理此问题的所有尝试都失败了。

那么如何才能做到呢?

With my Clojure/appengine-magic project, I currently start things up like this:

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

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

Alternatively, instead of ae/start, I could use, I think:

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

I'd like to put all this behind a single command.

All attempts to handle this via a -main used with lein run or writing a leiningen plugin failed due to namespace/path issues.

So how can it be done?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

讽刺将军 2024-10-28 21:32:40

感谢一个不愿在这里回答的人给出的例子,我现在有了一个很好的解决方案。

添加到我的project.clj:

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

将在运行lein repl时触发。

初始化-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)

Thanks to an example given by someone who preferred not to answer here, I now have a pretty good solution.

Addition to my project.clj:

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

Will be triggered on running 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)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文