Clojure 如何为Leiningen配置专有依赖项?
我们正在进行一个具有Clojure Java互操作的项目。此时,我们有一个类,它具有各种依赖项,我们将这些依赖项放入Eclipse中的用户库中进行开发,但在使用Leiningen(2.x)时,这当然没有帮助。我们的大多数依赖项都是专有的,因此它们不在某个存储库中 最简单/正确的方法是什么 我见过,但它似乎过时了 更新:所以我为我的jar创建了一个本地maven存储库,如下所示,并编辑了我的project.clj文件:Clojure 如何为Leiningen配置专有依赖项?,clojure,leiningen,clojure-java-interop,Clojure,Leiningen,Clojure Java Interop,我们正在进行一个具有Clojure Java互操作的项目。此时,我们有一个类,它具有各种依赖项,我们将这些依赖项放入Eclipse中的用户库中进行开发,但在使用Leiningen(2.x)时,这当然没有帮助。我们的大多数依赖项都是专有的,因此它们不在某个存储库中 最简单/正确的方法是什么 我见过,但它似乎过时了 更新:所以我为我的jar创建了一个本地maven存储库,如下所示,并编辑了我的project.clj文件: :dependencies [[...] [us
:dependencies [[...]
[usc "0.1.0"]]
:repositories {"usc" "file://maven_repository"}
maven_存储库位于项目目录下(因此不使用文件://
)。当我运行“lein deps”时--我得到了以下信息:
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
“找不到支持的算法”是什么意思?如何修复
更新2:找到了答案的最后一点。将它们作为依赖项添加到您的leiningen项目中。你可以编名字和版本。
然后运行lein deps,当它找不到错误消息时,它会给您一个确切的运行命令,这样您就可以将jar安装到您的本地repo,然后如果您决定使用共享repo,您可以使用相同的过程将依赖项放在那里 YMMV但我发现在处理Polyglot Clojure/Java项目时,最好使用Maven而不是Leiningen 这主要是因为基于Java的工具(Eclipse等)理解Maven项目,但并不真正理解Leiningen项目。随着优秀的逆时针Clojure插件的出现,情况正在慢慢好转,但是对于一个高效的基于IDE的工作流来说,集成仍然不够好
在存储库方面,我建议设置一个私有的共享Maven存储库。如果您计划在团队中管理一组复杂的依赖关系,您迟早会需要它:不妨现在就咬紧牙关完成。@Arthur的回答很好,但我想我会充实一下,因为它缺少一些细节
lein
负责部署所有工件,但至少您可以将特定于clojure的JAR安装到S3中,或者如果您愿意,甚至可以进行文件共享。其余的工件必须直接使用Maven或Ant将工件上传到文件服务器或S3上的Maven repo。在我目前的公司,我们正在使用technomancy的优秀到卓越的效果来托管我们的封闭源代码工件,以及托管我们可以开放源代码的任何东西
lein安装
。所做的只是将当前项目的副本安装到本地.m2
目录中,以便框中的其他项目可以引用它们。除非您已将maven安装配置为使用.m2
文件夹的共享目录(在您的环境中可能不是一个坏主意?),否则这将意味着签出您的项目的任何其他人都无法构建它。如果您想走这条路,您需要将$M2_HOME/conf/settings.xml中的localRepository
节点设置为团队其他成员可以访问的共享位置。有关更多信息,请参阅