復習のための備忘録
lein help tutorial
プロジェクトを作成するときに、テンプレート指定を省略すると、
defaultのテンプレートが用いられる。
このテンプレートはライブラリ作成用なので、アプリケーションならappを明示したほうがよい。
ファイル名とネームスペースへの変換
Clojureだとシングルセグメントのネームスペースは推奨されない。
ダッシュつきのネームスペースは、アンダースコアの名前に置き換わる
JVMがダッシュつきの名前を呼び出すとトラブルが起きるから。
http://blog.8thlight.com/colin-jones/2010/12/05/clojure-libs-and-namespaces-require-use-import-and-ns.html
Javaのライブラリファイルは以下の3つの情報を持つ
アーティファクトグループ
アーティファクトID
バージョン
lein search $TERMを使ったり、webを使って、clojarsのサイトを見ることで、
アーティファクトIDとバージョンを調べることができる
グループIDは、/で区切られた前半を使って、アーティファクトIDは後半を使うのが多い
Javaのライブラリはこのわけかただが、Clojureのライブラリは二つのIDが同じ値をさすのが多い
その場合はグループIDを省略することができる
リポジトリは、clojars, maven central がデフォルトで使われるが、
:repositoriesキーを使って追加のリポジトリを指定することはできる
REPLの実行方法
lein repl
dependenciesに記述したライブラリは、ここでダウンロードされる
ドキュメントを参照する場合は、docを使って、
例を見たい場合は、clojuredocsを使う。
ソースコードを参照したい場合は、(source)を用いる
lein run で、-main関数を実行することができるが、
違うネームスペースの場合は-mオプションをつけることで指定ができる。
project.cljに:mainのデフォルト値がある場合は、省略することもできる
長時間実行するプロセスでメモリを節約したい場合は、trampolineタスクを使うことができて、
プロジェクトのJVMが実行される前に、LeinのJVMを終了することを許可する。
lein trampoline run -m my-stuff.server 5000
testコードを何も書かなくてもテンプレートに初期コードが含まれているので、
lein testで実行をすることができる。
ネームスペースを指定することでテストの実行範囲を絞ることもできて、
他の選択方法はヘルプを参照すること lein help test
uberjar
スタンドアローンで実行形式を作るときには、プロジェクトファイルに、
:mainにネームプレースの指定が必要なのと、そのネームスペースに、
(:gen-class)の宣言が必要になる。
:aotのオプションはつけたほうがいい?
AOTは事前コンパイル指定で、実行中はJIT。どう指定するのがいいのかは調査いる?
0 件のコメント:
コメントを投稿