14

プロジェクトで使用していた clojure ライブラリをハッキングしていたとしましょう。

/User/SCdF/Code/myproject/
/User/SCdF/Code/other-peoples-projects/clojure-library-cloned-from-github

現在、変更を加えるclojure-library-cloned-from-githubと、実行lein installして新しいバージョンをローカルリポジトリにプッシュし(ライブラリproject.cljの新しいバージョンを指すように変更して、-SNAPSHOT毎回更新されるようにしました)、再起動/実行lein depsmyprojectます。

../../clojure-library-cloned-from-githubMaven と jar を使用する代わりにライブラリのソース コードを調べるように leiningen に指示して、コードに変更を加えたときに実行時に表示されるようにする方法はありますか?

4

1 に答える 1

18

Leiningensのチェックアウト依存関係機能を確認してください。

基本的に、現在のプロジェクトの「checkouts」というサブディレクトリにあるライブラリ ディレクトリへのシンボリック リンクを作成し、それを Leiningen プロファイルに追加します。これで、プログラムが Leiningen から開始されるたびに (REPL、実行)、そのプロジェクトも読み込まれます。

Windows を使用している場合は、シンボリック リンクを作成する代わりに、'ジャンクション ポイント'と呼ばれるディレクトリへのシンボリック リンクに相当する NTFS を作成する必要があります。

プロジェクトが実際に Leiningen を介して開始されていない場合 (Eclipse/CounterClockWise など)、これが機能しないことに注意してください。CounterClockWise から実行する場合は、必要なライブラリを Eclipse プロジェクトとして追加してから、独自のプロジェクトの Eclipse プロジェクト プロパティを編集する必要があります。[Java Build Path] > [Projects] の下で、ライブラリ プロジェクトを追加します。

Eclipse REPL から開始すると、ライブラリが Java クラス パスに含まれます。ただし、プロジェクトを Leiningen で実行したときにも機能させるには、チェックアウト機能も使用する必要があります。

もちろん、プログラムのスタンドアロン ビルドを作成する場合は常に、チェックアウトの方法が機能しなくなり、通常の依存関係としてライブラリを含めるか、ビルドされたバージョンを uberjar に含める必要があります。

于 2013-07-25T11:06:53.287 に答える