clojure-noir项目与生成的uberjar - NoClassDefFoundError
问题描述:
以下http://www.webnoir.org/指示创建一个新项目 - 我跑lein uberwar - 这会生成一个(可执行)jar - 但它无法找到清单中提到的主类 - 没有找到类文件。clojure-noir项目与生成的uberjar - NoClassDefFoundError
该应用程序运行“lein run”运行。
是指能够运行这种方式(我希望它会启动一个嵌入式码头?)
FYI Jar produced with lein uberjar fails on NoClassDefFoundError类似的uberjar - 但过时的(这是与特定leiningen其中的一个较新版本错误已修复)。
答
关键是要增加GEN-类server.clj
(ns myproject.server ... (:gen-class))
例如:使用雷音uberjar 我刚刚部署了,我有以下几点:
在我project.clj:
:main myproject.server
在我server.clj:
(ns myproject.server
(:require [noir.server :as server]
[myproject.views.common]
[myproject.views.index])
(:gen-class))
(server/load-views "src/myproject/views/")
(defn -main [& m]
(let [mode (keyword (or (first m) :dev))
port (Integer. (get (System/getenv) "PORT" "8080"))]
(server/start port {:mode mode
:ns 'myproject})))
- 需要在顶部
- 创一流的意见
- 负载意见
现在工作得很好,以Java的罐子的myproject-standalone.jar。
+0
你是对的 - 增加:gen-class是缺少的。 – 2012-04-29 10:03:11
我在webnoir网站上找不到任何关于“超级”,“战争”或“罐子”的提及。它只提到安装lein-noir插件并运行它来创建一个新项目。 – ivant 2012-04-27 06:51:59