Clojure 如何设置leiningen以处理多个项目?

Clojure 如何设置leiningen以处理多个项目?,clojure,leiningen,Clojure,Leiningen,我有多个独立的leiningen项目,表面上可以相互依赖 例如: ~/projects/mywebapp (my own project) ~/projects/noir (a clone of the github repo) ~/projects/clojureql (a clone of the github repo) 我想让它们同时编译到同一个JVM中。我想运行git repos最新版本(拉新提交/进行我自己的提交),不必运行lein jar或lein deps,如果我更

我有多个独立的leiningen项目,表面上可以相互依赖

例如:

~/projects/mywebapp  (my own project)
~/projects/noir      (a clone of the github repo)
~/projects/clojureql (a clone of the github repo)
我想让它们同时编译到同一个JVM中。我想运行git repos最新版本(拉新提交/进行我自己的提交),不必运行lein jar或lein deps,如果我更改了任何项目,当然也不必重新启动VM

下面是一个用例:

在emacs中运行lein swank之后,我连接到repl并从mywebapp(使用C-C-k)编译一个文件,这需要一个来自noir的文件。它在my projects目录中查找文件的版本。稍后,我打开该文件,编辑它,并编译它(使用C-C-k)

注意,当我执行git pull时,我并没有要求自动编译。我只是不想重新启动JVM或进行冗长的jar编译过程


这在莱宁根可能吗?如何设置此选项?

此问题是否来自帮助

Q:我想同时破解两个项目,但在它们之间切换很烦人

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


如果您已经在使用swank,则不需要lein签出依赖项。您只需C-C-k您的项目(将加载不和谐的noir/whatever版本),然后浏览到本地版本的noir和C-C-k。Swank愉快地将所有代码发送到您的repl,jvm永远不需要知道它来自不同的地方


不过,我只能建议您做一些小的改动,因为我认为如果您编译noir.core,它依赖于(比如)noir.internal,clojure将在编译本地版本的noir.core时加载jarred版本的noir.internal。即便如此,一般来说,这也是一个方便的窍门。

谢谢!我一定是在常见问题中错过了它。非常有用。这些信息应该在主文档中。