使用swank-clojure攻击Clojure库的工作流程

时间:2012-01-13 06:19:26

标签: clojure workflow slime leiningen swank

是否存在针对Clojure库进行黑客攻击的典型工作流程?

假设我的应用程序“Foo”依赖于第三方库“Bar”,它是从存储库中获取的,并通过lein deps包含在项目Foo中。

然后,说我想破解库“Bar”,所以我从github克隆它。

现在,我想破解我的本地克隆“Bar”,同时处理取决于它的应用程序“Foo”。我想使用swank的一个实例在Emacs中打开所有源文件以及“Foo”中的所有源文件。

有一种简单的方法吗?

我想改变我的环境而不是项目。因此,我不想编辑“Foo”的project.clj以实现此目的。

这是否需要在启动lein swank之前设置类路径,还是有更好的方法?

1 个答案:

答案 0 :(得分:5)

在Foo项目中创建一个checkouts目录,并为此目录中的Bar项目的克隆创建一个符号链接。

引用Leiningen FAQ

  

:我想要并行攻击两个项目,但在它们之间切换很烦人。
   A :如果您在项目根目录中创建一个名为checkouts的目录,并且符号链接其他一些项目,Leiningen将允许您并行攻击它们。这意味着依赖项的更改将在主项目中可见,而无需经历整个install / switch-projects / deps / restart-repl循环,并且签出中的副本将优先于project.clj中声明的依赖项。请注意,这不是将项目列在:dependencies;它只是为了方便而补充。