clojure lein:如何在项目的其他目录中包含源代码?

时间:2011-09-14 04:41:02

标签: clojure github dependencies leiningen

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

> lein deps

我想使用克隆的github存储库中的源代码(它最近的修复程序不在当前的jar中)。用leiningen做这个规范的方法是什么?

这是我的项目文件:

(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的回复。

https://github.com/overtone/overtone

这可能吗?

2 个答案:

答案 0 :(得分:19)

您可以使用结帐依赖项。来自Leiningen's README

  问:我想要并行攻击两个项目,但这很烦人   在它们之间切换。

     

答:使用名为checkout dependencies的功能。如果你创建一个   项目根目录中名为checkouts的目录和其他符号链接   项目根植于它,Leiningen将允许你攻击他们   平行。这意味着依赖关系的变化将在   主要项目无需经过整体   install / switch-projects / deps / restart-repl cycle。请注意,事实并非如此   在:dependencies中列出项目的替代品;它很简单   补充那些更紧密的变化周期。

答案 1 :(得分:1)

当我使用lein时,我只是将项目目录中的符号链接放到已检出的Overtone源目录中。

我现在使用蛋糕来进行我的Overtone黑客攻击,这支持将外部项目添加到类路径中。您只需要在项目的.cake / config文件中添加project.classpath的路径:

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