clojure lein:如何在我的项目中包含来自另一个目录的源代码?

clojure lein:如何在我的项目中包含来自另一个目录的源代码?,clojure,github,dependencies,leiningen,Clojure,Github,Dependencies,Leiningen,我在一个目录中有一个lein项目,而不是使用运行时下载的.jar > lein deps 我想使用克隆的github存储库中的源代码(它有最近的修复程序,但不在当前的jar中)。用莱宁根做这件事的标准方法是什么 这是我的项目文件: (defproject oroboros "1.0.0-SNAPSHOT" :description "FIXME: write description" :dependencies [[org.clojure/clojure "1.2.1"]

我在一个目录中有一个lein项目,而不是使用运行时下载的.jar

> lein deps
我想使用克隆的github存储库中的源代码(它有最近的修复程序,但不在当前的jar中)。用莱宁根做这件事的标准方法是什么

这是我的项目文件:

(defproject oroboros "1.0.0-SNAPSHOT"
  :description "FIXME: write description"
  :dependencies [[org.clojure/clojure "1.2.1"]
                 [org.clojure/clojure-contrib "1.2.0"]
                 [clojure-source "1.2.1"]
                 [overtone "0.3.0"]
                 [penumbra "0.6.0-SNAPSHOT"]]
  :native-dependencies [[penumbra/lwjgl "2.4.2"]]
  :dev-dependencies [[native-deps "1.0.5"]
                     [swank-clojure "1.4.0-SNAPSHOT"]])
我想使用github的泛音回购,而不是clojars的泛音回购


这可能吗?

您可以使用签出依赖项。发件人:

问:我想同时攻克两个项目,但这对我来说很烦人 在它们之间切换

答:使用称为签出依赖项的功能。如果您创建一个 项目根目录中名为
checkout
的目录,并用符号链接其他目录 项目扎根于此,Leiningen将允许您在 平行的这意味着依赖关系中的更改将在 主要项目无需贯穿整个项目 安装/切换项目/deps/重新启动repl循环。请注意,这不是 在
:dependencies
中列出项目的替换项;这很简单 为更紧密的变更周期提供补充


当我使用lein时,我只是在我的项目目录中添加符号链接到签出的泛音源目录

最近我使用cake进行泛音黑客攻击,它支持向类路径添加外部项目。您只需要在项目的.cake/config文件中添加project.classpath的路径:

project.classpath = /Users/sam/Development/improcess/lib/overtone/src:

添加签出目录并将回购链接到中不起作用。我还需要做更多的事吗?我看不到其他地方描述的此功能。如果在checkouts目录中添加链接,则不需要在project.clj文件中指定依赖项。与文档所暗示的相反,您应该从project.clj文件中删除引用,否则lein deps仍然会中断。Joost是正确的,您应该从project.clj中的:dependencies中删除泛音。实际上,Joost是错误的,您需要保留project.clj中的依赖项。签出依赖项是常规依赖项的补充;它们不会取代它们。两个原因:0)它们不是可传递的,1)它们是选择性加入的;其他人可能想在不设置签出的情况下侵入项目。@technomancy,如果您的依赖项在签出之外的任何地方都不可用,该怎么办?(无clojars、本地maven回购等)