1

Clojure でhttps://github.com/Netflix/RxJavaで頻繁にビルドされている最新機能のいくつかを使用したいのですが、ビルドしたローカル .jar を Leiningen に参照させるのに苦労しています。Clojars にリリースされた rxjava の最後のバージョンは 0.9.0 で、projects.clj で次のようにすると正常に到達できます。

:dependencies [[org.clojure/clojure               "1.5.1"]
             [com.netflix.rxjava/rxjava-clojure "0.9.0"]]

ここで、現在の rxjava ソースのビルドに成功しました。これにより、次のファイルが生成されます。

/Users/rebcabin/Documents/RxJava/language-adaptors/rxjava-clojure/build/libs/rxjava-clojure-0.9.1-SNAPSHOT-javadoc.jar
/Users/rebcabin/Documents/RxJava/language-adaptors/rxjava-clojure/build/libs/rxjava-clojure-0.9.1-SNAPSHOT-sources.jar
/Users/rebcabin/Documents/RxJava/language-adaptors/rxjava-clojure/build/libs/rxjava-clojure-0.9.1-SNAPSHOT.jar

Clojure プロジェクト ディレクトリで、次のことを行います。

mvn deploy:deploy-file \
    -DgroupId=local \
    -DartifactId=rxjava-clojure \
    -Dversion=0.9.1-SNAPSHOT \
    -Dpackaging=jar \
    -Dfile=/Users/rebcabin/Documents/RxJava/language-adaptors/rxjava-clojure/build/libs/rxjava-clojure-0.9.1-SNAPSHOT.jar \
    -Durl=file:maven_repository

https://gist.github.com/stuartsierra/3062743 (下部を参照) http://www.pgrs.net/2011/10/30/using-local-jars-with-leiningen経由の指示に従います。 /およびleiningen - ローカル jar の依存関係を追加する方法は? .

これは成功を報告し、次の結果を生成します。

$ find maven_repository/
maven_repository/
maven_repository//local
maven_repository//local/rxjava-clojure
maven_repository//local/rxjava-clojure/0.9.1-SNAPSHOT
maven_repository//local/rxjava-clojure/0.9.1-SNAPSHOT/maven-metadata.xml
maven_repository//local/rxjava-clojure/0.9.1-SNAPSHOT/maven-metadata.xml.md5
maven_repository//local/rxjava-clojure/0.9.1-SNAPSHOT/maven-metadata.xml.sha1
maven_repository//local/rxjava-clojure/0.9.1-SNAPSHOT/rxjava-clojure-0.9.1-20130628.172154-1.jar
maven_repository//local/rxjava-clojure/0.9.1-SNAPSHOT/rxjava-clojure-0.9.1-20130628.172154-1.jar.md5
maven_repository//local/rxjava-clojure/0.9.1-SNAPSHOT/rxjava-clojure-0.9.1-20130628.172154-1.jar.sha1
maven_repository//local/rxjava-clojure/0.9.1-SNAPSHOT/rxjava-clojure-0.9.1-20130628.172154-1.pom
maven_repository//local/rxjava-clojure/0.9.1-SNAPSHOT/rxjava-clojure-0.9.1-20130628.172154-1.pom.md5
maven_repository//local/rxjava-clojure/0.9.1-SNAPSHOT/rxjava-clojure-0.9.1-20130628.172154-1.pom.sha1
maven_repository//local/rxjava-clojure/maven-metadata.xml
maven_repository//local/rxjava-clojure/maven-metadata.xml.md5
maven_repository//local/rxjava-clojure/maven-metadata.xml.sha1

projects.clj ファイルを修正して、次の内容を含めます。

:dependencies [[org.clojure/clojure               "1.5.1"]
             [com.netflix.rxjava/rxjava-clojure "0.9.1"]]
:repositories {"local" ~(str (.toURI (java.io.File. "maven_repository")))}

しかし、lein deps はローカル リポジトリを見つけることができません。

$ lein deps
Could not find artifact com.netflix.rxjava:rxjava-clojure:jar:0.9.1 in central (http://repo1.maven.org/maven2/)
Could not find artifact com.netflix.rxjava:rxjava-clojure:jar:0.9.1 in clojars (https://clojars.org/repo/)
Could not find artifact com.netflix.rxjava:rxjava-clojure:jar:0.9.1 in local (file:/Users/rebcabin/Documents/ClojureProjects/rxjava/expt1/maven_repository/)
This could be due to a typo in :dependencies or network issues.

project.clj の次の推測も機能しません。

:dependencies [[org.clojure/clojure               "1.5.1"]
             [com.netflix.rxjava/rxjava-clojure "0.9.1-SNAPSHOT"]]
:repositories {"local" ~(str (.toURI (java.io.File. "maven_repository")))}

:dependencies [[org.clojure/clojure               "1.5.1"]
             [com.netflix.rxjava/rxjava-clojure "0.9.1--20130628.172154-1"]]
:repositories {"local" ~(str (.toURI (java.io.File. "maven_repository")))}

続行する方法についてのアイデアはありますか?

4

2 に答える 2

2

(あなたがこれを尋ねたメーリングリストでも答えました)

コマンドのgroupIdが正しくありません。deploy-fileである必要がありますcom.netflix.rxjava。次に、あなたの依存関係project.cljに使用します。[com.netflix.rxjava/rxjava-clojure "0.9.1-SNAPSHOT"]また、 で同じことを行う必要があることに注意してくださいrxjava.core

于 2013-06-30T04:26:38.070 に答える
1

rxjava プロジェクト ディレクトリから実行

mvn install

jar をシステムのローカル Maven リポジトリにインストールします。
Clojure プロジェクトのディレクトリから、依存関係として 0.9.1-SNAPSHOT を追加してから、

lein deps :tree

正しいバージョンが使用されていることを確認してください。

于 2013-06-28T17:53:19.067 に答える