2013-02-07 19 views
5

私たちは、Clojure-Javaの相互運用機能を持つプロジェクトに取り組んでいます。この時点では、開発のためにEclipseのユーザーライブラリに入れたさまざまな依存関係を持つ単一のクラスがありますが、もちろんLeiningen(2.x)を使用するときは役に立ちません。私たちの依存関係のほとんどはプロプライエタリなので、どこかのリポジトリにはありません。Leiningenのプロプライエタリ依存関係をどのように構成しますか?

これを行う最も簡単な方法は何ですか?

私はleiningen - how to add dependencies for local jars?を見ましたが、古くなったようですか?

更新:だから私はthese instructionsthe lein deployment docs on github以下の私のjarファイルのローカルのMavenリポジトリを作っており、このような私project.cljファイルを編集した:

:dependencies [[...] 
       [usc "0.1.0"]] 
:repositories {"usc" "file://maven_repository"} 

maven_repositoryは、プロジェクトディレクトリの下にある場合(それゆえではありませんfile:///を使用)。どういう意味ですか

Retrieving usc/usc/0.1.0/usc-0.1.0.pom from usc 
Could not transfer artifact usc:usc:pom:0.1.0 from/to usc (file://maven_repository): no supported algorithms found 
This could be due to a typo in :dependencies or network issues. 
Could not resolve dependencies 

「何もサポートされているアルゴリズムが見つからない」と私はそれをどのように修正すればよい: - 私は「レインのDEPS」を実行したとき、私はこのメッセージを得ましたか。

更新2:答えの最後のビットが見つかったhere

答えて

1

あなたのleiningenプロジェクトへの依存としてそれらを追加してください。名前とバージョンを構成することができます。 次にlein depsを実行すると、見つからない場合はエラーメッセージが表示され、正確なコマンドが実行されますのでローカルリポジトリにjarをインストールしてください共有リポジトリを使用することにしましたか?そこにあなたの依存関係を置く。

0

YMMVしかし、私は、Polyglot Clojure/Javaプロジェクトで作業しているときに、LeiningenではなくMavenを使用することをお勧めします。

主にJavaベースのツール(Eclipseなど)がMavenプロジェクトを理解しているが、Leiningenプロジェクトを実際に理解していないためです。 Counterclockwise Clojureの優れたプラグインでは、ゆっくりと改善されていますが、効率的なIDEベースのワークフローのためにまだ統合されていません。

物事のリポジトリ側では、プライベート共有Mavenリポジトリを設定することをお勧めします。チーム内の複雑な依存関係を管理する予定がある場合は、すぐに必要になります。

1

@アーサーの答えは良いですが、いくつかの詳細が欠けているので、私はそれをもう少し肉付けたいと考えました。

  1. 常にRepeatabilityに留意してください。アーティファクトにアクセスする必要がある人が標準的な方法でアーティファクトにアクセスできるようにすることができない場合は、サポートを求めています。

  2. documentation on deploymentは、アーチファクトの展開について知る必要があるすべての情報を見つけるのに適しています。あなたが多言語環境にいるので、leinはあなたのすべての成果物を配備することはできませんが、少なくともあなたはClojure固有のジャーをS3またはファイル共有にすることができます。残りの成果物は、MavenまたはAntを直接使用して、ファイルサーバまたはS3上のMavenレポに成果物をアップロードする必要があります。私の現在の会社では、technomancyの優れたs3 wagon privateを使用してクローズドソースのアーティファクトをホスティングし、clojarsをオープンソースとしてホストしています。

  3. @Arthurが参照しているものは、lein installです。現在のプロジェクトのコピーをあなたのローカルの.m2ディレクトリにインストールするだけで、あなたのボックスの他のプロジェクトがそれらを参照できるようになります。 .m2フォルダの共有ディレクトリを使用するようにmavenのインストールを設定していない場合は、プロジェクトをチェックアウトする他のユーザーは、をビルドできません。このルートに移動する場合は、$M2_HOME/conf/settings.xmllocalRepositoryノードを他のチームがアクセスできる共有ロケーションに設定する必要があります。詳細については、the docsを参照してください。

関連する問題