略过了废话不想翻译...
使用 Leiningen 来管理你的项目
Leiningen 可以帮助你去创建、构建、测试、打包还有部署你的项目。换句话说,它是你需要的一个可以一站式管理应用相关内容的工具。
这段不想翻译啦。就是说 Clojure 的 Leiningen 类似于 Maven。
使用了 Leiningen 后,你就可以不用担心任何的关于下载你的应用所使用包的问题了。你只要在一开始说明关于包最高层级的依赖,它就会会自动帮你自动的加载进来。
安装 Leiningen 也是十分简单的。你可以在官网上下载脚本,运行它就可以了。
安装我也不想翻译啦。
使用下面的命令就可以简单的创建一个项目了:
lein new myapp
打开新建项目的文件夹之后,在 src 文件夹下,我们能看到一个叫做 myapp 的文件夹,里面就有一个源代码文件 core.clj
:
(ns myapp.core)
(defn foo
"I don't do a whole lot." [x]
(println x "Hello, World!"))
注意,这个命名空间的声名和文件的结构是匹配的,因为core
文件在myapp
文件夹中,所以它的名字是:myapp.core
。
在 Leiningen 的 project 文件中有一些什么东西
在项目myapp
之中,有一个文件project.clj
,这个文件之中包含了对于我们这个应用的描述。
在仔细审视这个文件之后,你会发现这个他是使用标准的Clojure语法写成的包括了应用名称、版本号、url地址以及依赖的包。
(defproject myapp "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.5.1"]])
project.clj
文件也支持我们进行各种个样方面的对于应用程序的管理。举一个例子,我们可以设置在myapp.core
中的foo
方法作为其在应用中的入口点,使用:main
关键词进行设置。
(defproject myapp "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.5.1"]]
;;this will set foo as the main function
:main myapp.core/foo)
现在在终端之中就可以使用lein run
命令来运行这个应用。因为foo
需要一个参数,所以我们可以传入一个:
lein run First
;-> First Hello, World!
在前面这个例子之中,我们创建了一个非常简单的应用,只依赖于Clojure就可以运行。如果我们要使用它来创建一个互联网应用,我们需要写很多的样板文件来确保它可以正确的运行。让我们来看看如何使用Leiningen来创建一个已经为我们设置好样板的webapp。
Leiningen 模版
将模版名称提供给lein
脚本,在创建项目之后就可以使用它了。
这些模版自身是使用了lein-newnew plug-in
的Clojure项目,晚些时候我们将看看怎么自己来做『模版』。
而现在,我们将要使用compojure-app
来创建我们接下来的一个应用。
在执行lein
脚本的时候,模版的名称要跟在关键词new
的后面,然后再跟上应用的名称。所以,我们只需要做下面这一步,然后再等待应用构建完成就可以了:
lein new compojure-app guestbook
当我们运行这个应用的时候,我们可以看到终端会有如下的输出,然后终端会打开一个新的浏览器窗口来显示它的主页:
lein ring server
guestbook is starting
2013-07-14 18:21:06.603:INFO:oejs.Server:jetty-7.6.1.v20120215
2013-07-14 18:21:06.639:INFO:oejs.AbstractConnector:
StartedSelectChannelConnector@0.0.0.0:3000
Started server on port 3000
现在,你应该知道如何去创建和运行你的应用程序了,我们来看看怎么去编辑它。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。