Web Development with Clojure CH1 (1)

略过了废话不想翻译...

使用 Leiningen 来管理你的项目

Leiningen 能够帮助你去建立、构建、测试、打包还有部署你的项目。换句话说,它是你须要的一个能够一站式管理应用相关内容的工具。html

这段不想翻译啦。就是说 Clojure 的 Leiningen 相似于 Maven。

使用了 Leiningen 后,你就能够不用担忧任何的关于下载你的应用所使用包的问题了。你只要在一开始说明关于包最高层级的依赖,它就会会自动帮你自动的加载进来。web

安装 Leiningen 也是十分简单的。你能够在官网上下载脚本,运行它就能够了。浏览器

安装我也不想翻译啦。

使用下面的命令就能够简单的建立一个项目了:app

lein new myapp

打开新建项目的文件夹以后,在 src 文件夹下,咱们能看到一个叫作 myapp 的文件夹,里面就有一个源代码文件 core.clj:eclipse

(ns myapp.core)
(defn foo
    "I don't do a whole lot." [x]
    (println x "Hello, World!"))

注意,这个命名空间的声名和文件的结构是匹配的,由于core文件在myapp文件夹中,因此它的名字是:myapp.corewebapp

在 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须要一个参数,因此咱们能够传入一个:this

lein run First
;-> First Hello, World!

在前面这个例子之中,咱们建立了一个很是简单的应用,只依赖于Clojure就能够运行。若是咱们要使用它来建立一个互联网应用,咱们须要写不少的样板文件来确保它能够正确的运行。让咱们来看看如何使用Leiningen来建立一个已经为咱们设置好样板的webapp。url

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

如今,你应该知道如何去建立和运行你的应用程序了,咱们来看看怎么去编辑它。

相关文章
相关标签/搜索