Clojure:如何将依赖项目(本地)添加到主Clojure项目中

时间:2017-06-28 11:37:16

标签: clojure datomic

我在Clojure中有一个隔离项目假设这三个项目是相互依赖的。

  1. 的Clojure-IO
  2. 的Clojure-数据
  3. 的Clojure-CALC The dependencies of the project are as follows
  4. 我尝试将项目添加到我的clojure根目录中,并尝试运行相同但我得到的错误说:无法解析符号:k在此上下文中

    项目的依赖

      

    项目2和项目3依赖于项目1,因此我需要项目2中的项目2和项目3

1 个答案:

答案 0 :(得分:2)

听起来你需要使用lein-checkouts。这是a detailed description。另请参阅the documentation

基本上,您在项目目录的顶层(checkouts旁边)创建了一个名为project.clj的目录。在checkouts内,为所有依赖项目创建指向本地顶级目录的符号链接。

例如,我有一个项目car,取决于其他两个项目,enginewheel。我像这样构建项目:

> d car/checkouts/*            
lrwxrwxrwx 1 alan alan 17 Jun  6 21:40 car/checkouts/engine -> /home/alan/engine
lrwxrwxrwx 1 alan alan 17 Jun  6 21:40 car/checkouts/wheel -> /home/alan/wheel

更新1: 使用ln -s命令在linux中创建符号链接(也称为符号链接):

> cd car
> ln -s /home/alan/wheel
> ls -ldF wheel
lrwxrwxrwx 1 alan alan 17 Jun  6 21:40 wheel -> /home/alan/wheel

现在,项目car会看到enginewheel项目的文件的任何本地修改(当然还有自己的源文件)。

更新2

对于jar文件依赖项,您需要在project.clj文件中使用 :resource-paths 。请参阅this question.this example