使用Clojure开发Web入门系列(一)

对于Clojure语言这里有一些很好的入门教程:

  1. Learn X in Y minutes
  2. Clojure - Functional Programming for the JVM
  3. Clojure koans

零、需要了解的知识

  1. Web
  2. http
  3. Clojure
  4. Leiningen
  5. HTML
  6. Java

一、安装

首先Clojure是JVM上的Lisp方言,所以需要安装Java,可以去官方网站下载安装包,最好下载最新的JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html
安装完成之后需要打开命令行窗口看看是否可以执行java命令。

然后安装Leiningen,这个是项目的管理工具,可以管理依赖,编译工程,打包项目等等。可以参照 http://leiningen.org/#install 介绍的方法。

二、创建项目

1
2
lein new app learnweb
cd learnweb

创建完成后目录结构应该像下面这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
├── CHANGELOG.md
├── LICENSE
├── README.md
├── doc
│   └── intro.md
├── project.clj
├── resources
├── src
│   └── learnweb
│   └── core.clj
└── test
└── learnweb
└── core_test.clj

首先打开project.clj看一眼,这个文件就是定义项目的文件,同样也是使用的clojure的语法

1
2
3
4
5
6
7
8
9
(defproject learnweb "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.7.0"]]
:main ^:skip-aot learnweb.core
:target-path "target/%s"
:profiles {:uberjar {:aot :all}})

第一行里定义了项目名字learnweb,版本0.1.0-SNAPSHOT,这两个在打包的时候分体现在文件名上面。
:dependencies包含了项目执行时的所有依赖,后面添加第三方库的时候需要修改这里。
:main指明了程序的入口,是包learnweb.core-main函数。

src目录就是咱们的源代码目录了

现在咱们先来运行一下创建好的项目,使用lein(Leiningen命令)运行:

1
lein run

你会得到输出Hello, World!。哈哈,入门必经hello world。

完整的代码请checkout到1.1分支。