project.clj
leiningen によって呼び出されたときに渡される引数に応じて、別の方法で使用したいファイルがあります。これが私の架空のサンプルプロジェクトです
(defproject simple "0.0.1"
:source-paths [(get-argument "source.path")])
(この場合get-argument
、単純に を呼び出しますSystem/getProperty
)。このファイルを次のように使用します。
lein2 compile -Dsource.path=path/to/location
問題は 2 つあります。
- leiningen に引数を渡す方法がわかりません。
-Dkey=value
構文を受け入れません。オプション/追加の引数を渡すことに関するドキュメントには何も見つかりませんでした。明らかな何かが欠けていますか? - 内部のサブフォーム
defproject
は特別な方法で処理されているようです。コードを挿入する簡単な方法が見つかりませんでした。
私はいくつかのアプローチを見つけました
- https://github.com/weavejester/environは有望に見えますが、project.clj 内ではなく、適切な clojure コードでのみ機能するようです
- https://groups.google.com/forum/?fromgroups=#!topic/leiningen/t8G6Et1_j8w -- これは問題の半分を解決する回避策です
- ビルド プラットフォームに基づいて異なる依存関係を必要とする leiningen プロジェクトをセットアップするエレガントな方法は何ですか? project.clj でコードを評価する方法についていくつかのアイデアを提供します
- https://github.com/sattvik/leinjackerはいくつかの汚いトリックを行うことを約束していますが、私の環境では動作しませんでした
(私が実際に使用したいのは、さまざまな成果物を含む clojurescript プロジェクトがあることです。さまざまなビルドを構成することは可能ですが、それらはすべて同じクロスオーバーを共有しています。)