如果这感觉像我固执的话,但我正尝试系统性地处理这个问题(“这是发生的事情,这是我缺少必要信息的地方”)而不是从解决方案开始(“只是更改一些代码”)以确保我们正在做正确的事情。
目前,您尚未描述一个详细、可重复的场景来重现实际的问题。没有这个,我们就无法考虑其他可能的解决方案或测试并验证某个特定的更改是否解决了问题。您声称这个问题既常见又被广泛报道。如果是这样,应该很容易指出这些讨论之一或描述场景,我需要的就是这样。
我尝试使用 tools.namespace 工具来重现这种错误,唯一的方法是使用 repl 中的 require,在那里更改此消息不会给我提供任何额外的信息。
user=> (require '[foo :as bar])
执行错误(IllegalStateException)在 user/eval1664 (REPL:1).
在用户命名空间中别名 bar 已经存在,别名 foo
注意,在 Clojure 1.10.0+ 中,这里不打印堆栈的最顶层,因此您看不到 "Namespace"(工具命名空间说明中的例子比较老)。说“别名 bar(初衷是为了指代 foo)在用户命名空间中已经存在,别名 foo”既没有提供更多的信息来理解问题,也没有解决问题,对吗?