Skip to content

Instantly share code, notes, and snippets.

@athos
Last active August 29, 2015 14:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save athos/7035e85fede86df40903 to your computer and use it in GitHub Desktop.
Save athos/7035e85fede86df40903 to your computer and use it in GitHub Desktop.

Leiningenの導入(2): 基本的な使い方

前回の記事では、Leiningenの紹介とインストールの仕方について説明しました。今回は、Leiningenの基本的な使い方について説明します。

Leiningenの基本的な使い方

Leiningenを使うときはleinコマンドを実行します。 leinコマンドからは種々のタスクを呼び出すことができます。そのうち、今回説明するのは以下のタスクです。

  • lein new: 新規プロジェクトの作成
  • lein deps: 依存ライブラリの取得
  • lein repl: REPLの起動
  • lein run: プロジェクトの実行
  • lein test: テストの実行

また、プラグインを導入することにより、Leiningenにタスクとして組み込まれている以外の機能をタスクとして呼び出せるようになります。

それでは、それぞれのタスクについて見ていきましょう。

新規プロジェクトの作成

プロジェクトを新規に作成する場合は、lein newを実行します。

$ lein new <プロジェクト名>

lein newを実行すると、<プロジェクト名>の名前のついたディレクトリの下に以下のようなファイルとディレクトリが生成されます。

  • project.clj: Leiningenの設定ファイル(これについては、別の回に説明します)。
  • src: プロジェクトのソースコードを置くためのディレクトリ。
  • test: プロジェクトのテストコードを置くためのディレクトリ。
  • resources: プロジェクトで使用するリソースを置くためのディレクトリ。

他にもいくつかファイルやディレクトリが生成されますが、Clojureプロジェクトを扱ううえで重要になるのは上の4つです。

また、特定の用途向けのディレクトリ構成でプロジェクトを作成したい場合には、以下のようにテンプレートを指定します。

$ lein new <テンプレート名> <プロジェクト名>

先ほど説明した、テンプレートを指定せずにlein newを実行する方法では、defaultテンプレートが適用されます。defaultテンプレート以外では、Leiningenに組み込まれた標準的なテンプレートとしては以下のようなものがあります。

  • app: アプリケーション用テンプレート
  • plugin: Leiningenプラグイン用テンプレート
  • template: Leiningenテンプレート用テンプレート

さらに、Leiningen標準のテンプレート以外にもサードパーティ製のテンプレートがあり、Webアプリケーションフレームワーク等ではそのフレームワークでプロジェクトを始めやすいように独自のテンプレートを用意しているものもあります。

しかし、簡単なライブラリやアプリケーションを作成する場合には、defaultテンプレートでプロジェクトを作成しても特に問題はありません。

依存ライブラリの取得

lein newで生成されたproject.cljに依存ライブラリを追加した場合、以下のコマンドを実行することで、追加した依存ライブラリを、ライブラリ自身が依存しているライブラリも含めて自動的に取得してくれます。

$ lein deps

ただし、最近のLeiningen(バージョン2.x)では、依存ライブラリの取得は他のタスク実行時にも自動的に実行されるため、このコマンドを明示的に実行する必要はありません。

REPLの起動

Leiningen経由でClojureのREPLを起動することができます。

$ lein repl

このコマンドを実行すると、取得したすべての依存ライブラリをクラスパスに追加した状態でREPLが起動されます。つまり、依存ライブラリをREPLから直接呼び出して使うことができます。

また、lein replで起動したREPLでは、入力補完や入力履歴をたどれる機能があるため、Clojure標準のREPLより便利です。lein replはプロジェクトを作成しなくても実行できるため、環境にLeiningenをインストールしておけば、どこでもREPLを起動することができます。

プロジェクトの実行

プロジェクトを実行する際には、以下のようにlein runを実行します。

$ lein run -m <main関数のある名前空間名>

main関数のある名前空間をproject.cljに指定することで、-m <main関数のある名前空間名>を省略することもできます。詳しくは次回以降に説明します。

テストの実行

Leiningenからテストを実行することもできます。テストを実行するには以下のコマンドを実行します。

$ lein test

これにより、プロジェクト作成時に生成されたtestディレクトリ下にあるテストが実行されます。

おわりに

今回はLeiningenの基本的な使い方として、new/deps/repl/run/testの5つのタスクについて説明しました。 次回は今回の内容を踏まえて簡単なプロジェクトの作成方法について見てみましょう。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment