Checkout dependencies可用于在开发期间向您的Leiningen项目添加另一个正在进行的项目(例如:您并行开发应用程序和底层库)。
然而,当结账依赖本身具有传统的"依赖(来自Clojars),在父项目中运行lein run
将抛出java.io.FileNotFoundException
,因为它显然没有检索到传统的"结帐依赖的依赖关系。
有没有办法让Leiningen项目递归下载其checkout依赖项的依赖项?
答案 0 :(得分:2)
我对"适当"的看法这样做的方法是让你的项目依赖于checkouts目录中的库作为传统的依赖项,除了将它放在checkouts目录中。
然后每次更改依赖关系时,在库项目中运行lein install 。这将导致lein生成相应的jar文件并将其安装到您的本地maven仓库中。这个库项目是否完成并不重要,因为你实际上并没有在这种状态下运行它,只是使用它来获取依赖项。
然后,当它确实有效时,你不必做任何事情来切换到生产"除了删除您的结帐目录。依赖项已经存在于依赖项目中。
使用checkout来处理库有一个副作用,因为代码加载了两次。一旦来自"依赖"版本,然后再从"结帐版本"。当我使用协议并且必须记住重新加载协议定义时,这对我来说非常棘手。