2016-03-30 17 views
0

Checkout dependenciesは、開発中に別の進行中のプロジェクトをLeiningenプロジェクトに追加するために使用することができます(たとえば、アプリケーションとその下にあるライブラリを並行して開発している場合など)。Leiningenはチェックアウト依存関係の依存関係を再帰的にダウンロードできますか?

しかし、チェックアウトの依存関係自体が、それは明らかにそのチェックアウトの依存関係の「伝統的な」依存関係を取得していないので、親プロジェクトでlein runjava.io.FileNotFoundExceptionがスローされます実行している、(Clojarsから)「伝統的な」依存関係を持っている場合。

Leiningenプロジェクトにチェックアウト依存関係の依存関係を再帰的にダウンロードさせる方法はありますか?

+0

チェックアウト依存関係の 'project.cli'からその親プロジェクトの依存関係リストをコピーすることが回避策になりますが、これはDRYではなく、依存関係の変更に同期しなくなる傾向があります。 – VincentDM

+0

IRCでは、親プロジェクトに依存関係としてライブラリを追加する方法があると言われています。しかし、公開されたバージョンがローカルバージョンよりも他の依存関係を持つ可能性があるため、これは準最適と思われます... – VincentDM

答えて

2

これを行う「適切な」方法の私の意見は、チェックアウトディレクトリにあることに加えて伝統的な依存関係として、プロジェクトをチェックアウトディレクトリのライブラリに依存させることです。

あなたが依存関係を変更するたびに、あなたのライブラリプロジェクトにlein installを実行してください。これにより、leinは適切なjarファイルを生成し、それをローカルのmavenリポジトリにインストールします。このライブラリプロジェクトが終了しているかどうかは関係ありません。なぜなら、実際にこの状態で実行しているわけではなく、依存関係をフェッチするだけなのでです。

それが正常に機能するときは、チェックアウトディレクトリを削除する以外に「プロダクションに切り替える」必要はありません。従属プロジェクトは既に依存関係にあります。

チェックアウトを使用して、コードを2回ロードするという点でライブラリを処理するという副作用があります。一度「依存」バージョンから、そして「チェックアウトバージョン」からもう一度。これは、私がプロトコルを使用していて、プロトコル定義を再ロードすることを忘れてはならない時に、私は非常に時折問題になります。

関連する問題