Checkout 依赖项可用于在开发期间将另一个正在进行的项目添加到您的 Leiningen 项目(例如:您正在并行开发应用程序和底层库)。
但是,当结帐依赖项本身具有“传统”依赖项(来自 Clojars)时,lein run
在父项目中运行将抛出 a java.io.FileNotFoundException
,因为它显然不会检索其结帐依赖项的“传统”依赖项。
有没有办法让 Leiningen 项目递归下载其结帐依赖项的依赖项?
Checkout 依赖项可用于在开发期间将另一个正在进行的项目添加到您的 Leiningen 项目(例如:您正在并行开发应用程序和底层库)。
但是,当结帐依赖项本身具有“传统”依赖项(来自 Clojars)时,lein run
在父项目中运行将抛出 a java.io.FileNotFoundException
,因为它显然不会检索其结帐依赖项的“传统”依赖项。
有没有办法让 Leiningen 项目递归下载其结帐依赖项的依赖项?
我对执行此操作的“正确”方法的看法是,除了将其放在结帐目录中之外,还让您的项目依赖结帐目录中的库作为传统依赖项。
然后每次更改依赖项时,在库项目中运行 lein install 。这将导致 lein 生成适当的 jar 文件并将其安装到本地 maven 存储库中。这个库项目是否完成并不重要,因为您实际上并没有在这种状态下运行它,只是使用它来获取依赖项。
然后,当它运行时,除了删除结帐目录之外,您无需执行任何“切换到生产”的操作。依赖项已经在依赖项目中。
使用签出处理库有一个副作用,即代码被加载两次。一次来自“依赖”版本,然后再次来自“结帐版本”。当我使用协议并且必须记住重新加载协议定义时,这对我来说是一个非常偶然的问题。