簡體   English   中英

如何在leiningen的clojure中使用rxjava的當前版本

[英]How to use current builds of rxjava in clojure with leiningen

我想在Clojure中使用https://github.com/Netflix/RxJava上經常構建的一些最新功能,但是讓Leiningen引用我構建的本地.jar時遇到了一些困難。 發布到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
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")))}

任何想法如何進行,請和謝謝?

(我也在郵件列表上回答了你的問題)

deploy-file命令中的groupId不正確。 它應該是com.netflix.rxjava 然后在project.clj ,使用[com.netflix.rxjava/rxjava-clojure "0.9.1-SNAPSHOT"]作為依賴項。 另請注意,您需要對rxjava.core執行相同的rxjava.core

從rxjava項目目錄運行

mvn install

將罐子安裝到系統的本地maven倉庫。
從您的Clojure項目目錄添加0.9.1-SNAPSHOT作為依賴項然后

lein deps :tree

並確保您看到使用的正確版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM