【发布时间】:2020-08-28 16:55:32
【问题描述】:
我有一个 Clojure 应用程序,它正在使用从“checkouts”目录中符号链接的库。
这让我可以同时处理应用程序和库。并且 lein 知道如何毫无问题地编译和运行程序。
但我想用 lein uberjar 做一个独立的,它在抱怨
Caused by: java.io.FileNotFoundException: Could not locate mylib/core__init.class, mylib/core.clj or mylib/core.cljc on classpath.
我认为这是因为我的 project.clj 文件中没有提到 mylib。不是,正是因为我想在“checkouts”中使用符号链接的 mylib 版本。
但是uberjar命令好像看不到。
我该如何解决这个问题?
【问题讨论】:
-
您的
project.clj应该在project.clj中列出[mylib "0.1"],无论您是否使用lein 的“结帐”功能。在./checkouts中放置一个符号链接以指向 mylib 的开发版本将覆盖 Maven/Clojars 查找。也许您应该在问题中添加您的project.clj以澄清这一点? -
我在 StackOverflow 上看到的另一个答案似乎表明,如果我将 [mylib "0.1"] 放在我的 projects.clj 中,这将使用来自 Clojars 的版本,而不是我当前/开发中的版本。