本を読む

読書やコンピュータなどに関するメモ

Clojure + RingでHello World

 Tokyo.clj #2に参加中。#1からClojureさわってなかったので、いちから復習しているところ。

 とりあえずRingのHello Worldから。といってもコピペ。Ringは、WSGIとかRackとかのClojure版みたいなものらしい。

 まずLeiningenでプロジェクトを作る。

$ lein new hello
$ cd hello

 project.cljをエディタで編集。

  • :dependenciesに[ring/ring "0.2.0"]を追加
  • いちおう:descriptionを変更

 つまりこんな感じ。

(defproject hello "1.0.0-SNAPSHOT"
  :description "Hello, World"
  :dependencies [[org.clojure/clojure "1.1.0"]
                 [org.clojure/clojure-contrib "1.1.0"]
		 [ring/ring "0.2.0"] ])

 src/hello/core.cljをエディタで編集。といっても、RingのREADMEにある"Hello World"のソースをコピペするだけ。へー、本当にWSGIとかRackとかPlackとかみたいなんだ。

 インタプリタで実行。

$ lein deps
$ lein repl src/hello/core.clj

 ブラウザでhttp://localhost:8080/にアクセス。

Clojure + RingでHello World

 成功。

 次に、ビルドして.jarを作ってみる。まず、src/hello/core.cljのrun-jettyの呼び出しを、-main関数に入れる。

(defn -main []
  (run-jetty app {:port 8080}) )

 同じファイルのns指定に、:gen-classを付ける。

(ns hello.core (:gen-class))

 project.cljのdefprojectに「:main hello.core」を追加。そのうえでビルド。

$ lein uberjar

 実行。

$ java -jar hello-standalone.jar

 成功。

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://emasaka.blog65.fc2.com/tb.php/756-33dffc07

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly


FC2Ad