我正在尝试用compojure编写我的第一个web应用程序。我使用ccw,我使用File-New-Project, Clojure Project和"compojure“leiningen模板。最终project.clj看起来像这样
(defproject asdf "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:dependencies [[org.clojure/clojure "1.4.0"]
[compojure "1.1.5"]]
:plugins [[lein-ring "0.8.2"]]
:ring {:handler asdf.handler/app}
:profiles
{:dev {:dependencies [[ring-mock "0.1.3"]]}})src/asdf/handler.clj如下所示
(ns asdf.handler
(:use compojure.core)
(:require [compojure.handler :as handler]
[compojure.route :as route]))
(defroutes app-routes
(GET "/" [] "Hello World")
(route/not-found "Not Found"))
(def app
(handler/site app-routes))我发现我可以从命令行使用lein ring server运行它,但是我不确定如何从eclipse运行它。当然,我不仅希望能够运行它,还希望能够调试它并设置断点等。在eclipse中有什么方法可以做到这一点吗?或者,如果不是,IntelliJ/La-Clojure怎么样?(目前,我有点害怕emacs,但如果它非常简单,我可能会试一试)。
或者,这不是compojure应用程序的典型开发过程吗?(如果不是,什么是?只需运行lein ring server并祈祷?)
如果有什么不同的话,那就是在Win7上。
发布于 2013-03-16 17:26:38
以下是一个在开发Ring应用程序时对我非常有用的食谱:
确保为您的项目正确配置了leiningen支持(如果有疑问,请执行一次操作):在包资源管理器中选择项目,然后调用上下文命令Leiningen > Reset configuration
Leiningen Dependencies虚拟节点
asdf.handler文件,右键单击asdf.handler命名空间,然后在编辑器Ctrl+Alt+N以跳转到REPL并将REPL的当前命名空间切换为asdf.handler,同时(app) + Enter (或Ctrl+Enter如果光标不在行尾)启动应用程序
现在,您可以在编辑器和REPL之间导航。
要将编辑器内容发送到REPL,选择它,然后点击Ctrl+Enter
Ctrl+Enter )将被发送到REPL
Ctrl+Alt+S
请注意,逆时针的未来版本将更多地与Leiningen2集成,但就目前而言,开发ring应用程序的本质使得引导上面描述的东西不是那么痛苦。
发布于 2013-04-05 09:05:37
你可以在IntelliJ IDEA和La Clojure上运行Compojure/Ring应用程序,步骤如下:
project.clj生成lein pom。您可能希望确保项目已加载到Clojure jar中,您可以使用Tools -> start Clojure Console启动Clojure REPL。在此之后,要启动Ring应用程序,您只需加载一个调用ring.adapter.jetty/run-jetty的Clojure文件。
在http://localhost:4004/上运行简单路由的代码如下所示:
(require 'compojure.core)
(require 'ring.adapter.jetty)
(ring.adapter.jetty/run-jetty
(compojure.core/routes (compojure.core/ANY "/" [] "Hello world!"))
{:port 4004 :join? false}):join?选项很重要,如果将其设置为true (默认值),则REPL将不会接受更多命令。您的路由通常会更复杂,应该使用compojure.core/defroutes或其他方法。
您可以将这样的文件放在test路径中,这样在IDEA之外运行项目时就不会加载它。如果Clojure facet没有添加到您的模块中,您可以将其添加到文件->项目结构->模块中。
这里提供了一个完整的示例(包含jetty重新加载):https://github.com/tlipski/ganelon-demo -开发是使用IDEA完成的,真正的站点运行在Heroku:http://ganelon.herokuapp.com上。
调试使用上述技术运行的Clojure应用程序也是可能的-您只需:
agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005)中适当的JVM选项添加到文件->项目结构->模块->您的模块-> Clojure facet -> JVM参数字段中的REPL设置中。在此之后,您可以添加断点、检查变量等。
https://stackoverflow.com/questions/15442367
复制相似问题