2024 Clojure现状调查! 分享您的想法。

欢迎!请参阅 关于页面 了解更多有关此功能的详细信息。

0
tools.deps

与这个问题类似 https://ask.clojure.org/index.php/7848/transitive-paths-current-project-unspecified-transitive

我不确定如何可靠地重现此问题,但我有个问题,依赖项没有从 :local/root 依赖项中筛选出来,我的同事找到了相关的文章,这帮助我找到了一个解决方案。

在我的例子中,整个依赖项项目的 dep 为

{:paths ["src"]}

改为

{:paths ["src"]
 :deps {}}

使一切正常。

我还有一个项目使用相同的依赖项,它与没有-deps版本的功能兼容。

这是在依赖项的依赖项中。因此,我有这两种情况

  • 不起作用: project-a -> -dependency-1 -> dependency-2-path-only
  • 起作用: project-b -> -dependency-1 -> dependency-2-path-only

(“不起作用/起作用”是指在 project-a 的类路径上没有 dependency-2-path-only,但在 project-b 的类路径上)。

进一步... dependency-1 位于 dependency-2-path-only 的子目录下。因此在 dependency-2-path-only/dependency-1/deps.edn

{:paths ["src"]
 :deps {d2/dependency-2-path-only {:local/root ".."}}}

我现在意识到,在我描述完所有这些之后,我可以做一个可重现的示例。如果需要的话,请让我知道。

顺便说一下,我目前使用的是 1.10.3.967。

1 答案

+2

选中
 
最佳答案

有时候让人困惑的一件事是Clojure CLI不会自动获取本地依赖的改变 - 您需要使用clj -Sforce来强制更新本地依赖的类路径。所以如果上述任何一种改变了您的本地依赖的deps.edn,那么这是一个必要的步骤。如果您在使用-Sforce时仍然看到该问题,我会赞赏您能提供重现的方法。

谢谢!当强制刷新类路径时,我无法重现此问题。
...