4

我正在尝试使用 clojure Web 框架 noir 分发一个小型 Web 应用程序构建。运行时按预期工作lein run。当我运行时lein uberjarjava -jar project-1.0.0-standalone.jar它按预期工作。但是,如果我移动 jar 文件(project-1.0.0-standalone.jar),它会运行,但每个页面都会导致 404。Myproject.clj是默认生成的,lein noir new除了我添加:omit-source true:aot :all.

我在用着:

莱宁根 1.7.1

clojure 1.2.1

黑色 1.2.1

如何制作一个可以分发给其他人而无需来源的罐子?

4

2 回答 2

0

如果您尚未gen-class 向命名空间定义添加调用,添加它们可能会解决此问题。您可以通过运行来测试它

  lein clean
  lein compile

并确保您看到正在构建的每个类

于 2012-10-28T19:59:14.650 回答
0

我相信您遇到的问题是由于 noir.server/load-views 需要命名空间的方式。如果您将其从 target/ 目录中移出,它将无法再找到您传递给 load-views 的 views 目录。

解决方法是明确要求所有视图,而不是使用 load-views 函数。然后你应该可以在任何地方运行 uberjar。

于 2013-01-21T01:51:00.643 回答