[英]How to use current builds of rxjava in clojure with leiningen
I want to use some of the latest features being built frequently at https://github.com/Netflix/RxJava in Clojure, but am having some difficulties getting Leiningen to reference the local .jar that I build. 我想在Clojure中使用https://github.com/Netflix/RxJava上经常构建的一些最新功能,但是让Leiningen引用我构建的本地.jar时遇到了一些困难。 The last version of rxjava released to Clojars was 0.9.0, which I can successfully reach with the following in my projects.clj 发布到Clojars的rxjava的最后一个版本是0.9.0,我可以在我的projects.clj中成功到达以下版本。
:dependencies [[org.clojure/clojure "1.5.1"]
[com.netflix.rxjava/rxjava-clojure "0.9.0"]]
Now, I do a successful build of the current rxjava sources, which produces the following files 现在,我成功构建了当前的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
In my Clojure project directory, I do the following 在我的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
following the instructions given here: https://gist.github.com/stuartsierra/3062743 (see the bottom) via http://www.pgrs.net/2011/10/30/using-local-jars-with-leiningen/ and leiningen - how to add dependencies for local jars? 按照此处给出的说明操作: https : //gist.github.com/stuartsierra/3062743 (见底部), 网址为http://www.pgrs.net/2011/10/30/using-local-jars-with-leiningen /和leiningen - 如何为本地jar添加依赖项? . 。
That reports success and produces the following: 报告成功并产生以下结果:
$ 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
I now fix my projects.clj file to contain the following: 我现在修复我的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")))}
but lein deps fails to find the local repo 但莱恩德普斯未能找到当地的回购
$ 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.
The following guesses in project.clj also do not work: 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")))}
any ideas how to proceed, please & thanks? 任何想法如何进行,请和谢谢?
(I also answered on the mailing list where you asked this) (我也在邮件列表上回答了你的问题)
The groupId
in your deploy-file
command is incorrect. deploy-file
命令中的groupId
不正确。 It should be com.netflix.rxjava
. 它应该是com.netflix.rxjava
。 Then in your project.clj
, use [com.netflix.rxjava/rxjava-clojure "0.9.1-SNAPSHOT"]
for your dependency. 然后在project.clj
,使用[com.netflix.rxjava/rxjava-clojure "0.9.1-SNAPSHOT"]
作为依赖项。 Also note that you'll need to do the same with rxjava.core
. 另请注意,您需要对rxjava.core
执行相同的rxjava.core
。
from the rxjava project directory run 从rxjava项目目录运行
mvn install
to install the jars to your system's local maven repo. 将罐子安装到系统的本地maven仓库。
from your Clojure project's directory add 0.9.1-SNAPSHOT as a dependency and then 从您的Clojure项目目录添加0.9.1-SNAPSHOT作为依赖项然后
lein deps :tree
and make sure you see the correct version used. 并确保您看到使用的正确版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.