1

我想在功能块中导入依赖项。w 这些依赖项不是公开可用的,因此我无法通过 project.clj 包含它们并在 ns 块中需要它们。

但是,这些 jars 在服务器环境中可用,并且当下面的 deps 在类路径中时,服务器会调用下面的函数。

但是,当我在服务器 env 之外编译以下函数时,我仍然得到编译器错误,它无法找到 util 和 web ns。

(defn imm
  []
  (require '[immutant.web :as web]
           '[immutant.utilities :as util])
  (server/load-views (io/file (util/app-root) "src/pm/views"))
  (web/start "/dev" handler))
4

1 回答 1

1

您必须延迟 Var 分辨率。

(defn imm
  []
  (require '[immutant.web :as web] '[immutant.utilities :as util])
  (server/load-views (io/file @(resolve 'util/app-root) "src/pm/views"))
  (@(resolve 'web/start) "/dev" handler))
于 2012-07-05T05:53:29.130 回答