Clojure Leiningen能否递归下载其签出依赖项的依赖项?
可用于在开发期间向Leiningen项目添加另一个正在进行的工作项目(例如:您正在并行开发应用程序和基础库) 但是,当签出依赖项本身具有“传统”依赖项(来自Clojars)时,在父项目中运行Clojure Leiningen能否递归下载其签出依赖项的依赖项?,clojure,dependencies,leiningen,clojars,Clojure,Dependencies,Leiningen,Clojars,可用于在开发期间向Leiningen项目添加另一个正在进行的工作项目(例如:您正在并行开发应用程序和基础库) 但是,当签出依赖项本身具有“传统”依赖项(来自Clojars)时,在父项目中运行lein run将抛出java.io.FileNotFoundException,因为它显然不会检索其签出依赖项的“传统”依赖项 有没有一种方法可以让Leiningen项目递归地下载其签出依赖项的依赖项?我认为“正确”的方法是让您的项目将签出目录中的库作为传统依赖项,并将其作为签出目录中的库 然后每次更改依赖
lein run
将抛出java.io.FileNotFoundException
,因为它显然不会检索其签出依赖项的“传统”依赖项
有没有一种方法可以让Leiningen项目递归地下载其签出依赖项的依赖项?我认为“正确”的方法是让您的项目将签出目录中的库作为传统依赖项,并将其作为签出目录中的库
然后每次更改依赖项时,在库项目中运行lein install。这将导致lein生成适当的jar文件并将其安装到本地maven repo中。这个库项目是否完成并不重要,因为您实际上并没有在这种状态下运行它,只是使用它来获取依赖项
然后,当它起作用时,除了删除签出目录之外,您不必做任何事情来“切换到生产”。依赖项已在依赖项目中就位
在库上使用签出有一个副作用,即代码被加载两次。一次来自“依赖”版本,然后再次来自“签出版本”。当我使用协议时,这对我来说是一个非常偶然的问题,我必须记住重新加载协议定义。我认为“正确”的方法是让项目依赖于签出目录中的库作为传统依赖项,而不是签出目录中的库
然后每次更改依赖项时,在库项目中运行lein install。这将导致lein生成适当的jar文件并将其安装到本地maven repo中。这个库项目是否完成并不重要,因为您实际上并没有在这种状态下运行它,只是使用它来获取依赖项
然后,当它起作用时,除了删除签出目录之外,您不必做任何事情来“切换到生产”。依赖项已在依赖项目中就位
在库上使用签出有一个副作用,即代码被加载两次。一次来自“依赖”版本,然后再次来自“签出版本”。当我使用协议时,这对我来说是一个非常偶然的问题,必须记住重新加载协议定义。一个解决方法是将签出依赖项的
project.cli
的依赖项列表复制到其父项目的依赖项列表,但这并不是干巴巴的,而且随着依赖项的变化,很容易失去同步。在IRC上,我被告知,要做的就是将您的库作为依赖项添加到父项目中。但是,这似乎是次优的,因为发布的版本可能有本地版本以外的其他依赖项…解决方法是将依赖项列表从签出依赖项的project.cli
复制到其父项目的列表,但这并不是干巴巴的,而且随着依赖项的变化,很容易失去同步。在IRC上,我被告知,要做的就是将您的库作为依赖项添加到父项目中。然而,这似乎是次优的,因为发布的版本可能有本地版本以外的其他依赖项。。。