是否存在针对Clojure库进行黑客攻击的典型工作流程?
假设我的应用程序“Foo”依赖于第三方库“Bar”,它是从存储库中获取的,并通过lein deps
包含在项目Foo中。
然后,说我想破解库“Bar”,所以我从github克隆它。
现在,我想破解我的本地克隆“Bar”,同时处理取决于它的应用程序“Foo”。我想使用swank的一个实例在Emacs中打开所有源文件以及“Foo”中的所有源文件。
有一种简单的方法吗?
我想改变我的环境而不是项目。因此,我不想编辑“Foo”的project.clj以实现此目的。
这是否需要在启动lein swank
之前设置类路径,还是有更好的方法?
答案 0 :(得分:5)
在Foo项目中创建一个checkouts
目录,并为此目录中的Bar项目的克隆创建一个符号链接。
问:我想要并行攻击两个项目,但在它们之间切换很烦人。
A :如果您在项目根目录中创建一个名为checkouts的目录,并且符号链接其他一些项目,Leiningen将允许您并行攻击它们。这意味着依赖项的更改将在主项目中可见,而无需经历整个install / switch-projects / deps / restart-repl循环,并且签出中的副本将优先于project.clj中声明的依赖项。请注意,这不是将项目列在:dependencies;它只是为了方便而补充。