Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure Leiningen能否递归下载其签出依赖项的依赖项?_Clojure_Dependencies_Leiningen_Clojars - Fatal编程技术网

Clojure Leiningen能否递归下载其签出依赖项的依赖项?

Clojure Leiningen能否递归下载其签出依赖项的依赖项?,clojure,dependencies,leiningen,clojars,Clojure,Dependencies,Leiningen,Clojars,可用于在开发期间向Leiningen项目添加另一个正在进行的工作项目(例如:您正在并行开发应用程序和基础库) 但是,当签出依赖项本身具有“传统”依赖项(来自Clojars)时,在父项目中运行lein run将抛出java.io.FileNotFoundException,因为它显然不会检索其签出依赖项的“传统”依赖项 有没有一种方法可以让Leiningen项目递归地下载其签出依赖项的依赖项?我认为“正确”的方法是让您的项目将签出目录中的库作为传统依赖项,并将其作为签出目录中的库 然后每次更改依赖

可用于在开发期间向Leiningen项目添加另一个正在进行的工作项目(例如:您正在并行开发应用程序和基础库)

但是,当签出依赖项本身具有“传统”依赖项(来自Clojars)时,在父项目中运行
lein run
将抛出
java.io.FileNotFoundException
,因为它显然不会检索其签出依赖项的“传统”依赖项

有没有一种方法可以让Leiningen项目递归地下载其签出依赖项的依赖项?

我认为“正确”的方法是让您的项目将签出目录中的库作为传统依赖项,并将其作为签出目录中的库

然后每次更改依赖项时,在库项目中运行lein install。这将导致lein生成适当的jar文件并将其安装到本地maven repo中。这个库项目是否完成并不重要,因为您实际上并没有在这种状态下运行它,只是使用它来获取依赖项

然后,当它起作用时,除了删除签出目录之外,您不必做任何事情来“切换到生产”。依赖项已在依赖项目中就位

在库上使用签出有一个副作用,即代码被加载两次。一次来自“依赖”版本,然后再次来自“签出版本”。当我使用协议时,这对我来说是一个非常偶然的问题,我必须记住重新加载协议定义。

我认为“正确”的方法是让项目依赖于签出目录中的库作为传统依赖项,而不是签出目录中的库

然后每次更改依赖项时,在库项目中运行lein install。这将导致lein生成适当的jar文件并将其安装到本地maven repo中。这个库项目是否完成并不重要,因为您实际上并没有在这种状态下运行它,只是使用它来获取依赖项

然后,当它起作用时,除了删除签出目录之外,您不必做任何事情来“切换到生产”。依赖项已在依赖项目中就位


在库上使用签出有一个副作用,即代码被加载两次。一次来自“依赖”版本,然后再次来自“签出版本”。当我使用协议时,这对我来说是一个非常偶然的问题,必须记住重新加载协议定义。

一个解决方法是将签出依赖项的
project.cli
的依赖项列表复制到其父项目的依赖项列表,但这并不是干巴巴的,而且随着依赖项的变化,很容易失去同步。在IRC上,我被告知,要做的就是将您的库作为依赖项添加到父项目中。但是,这似乎是次优的,因为发布的版本可能有本地版本以外的其他依赖项…解决方法是将依赖项列表从签出依赖项的
project.cli
复制到其父项目的列表,但这并不是干巴巴的,而且随着依赖项的变化,很容易失去同步。在IRC上,我被告知,要做的就是将您的库作为依赖项添加到父项目中。然而,这似乎是次优的,因为发布的版本可能有本地版本以外的其他依赖项。。。