2012-04-26 52 views
2

以下http://www.webnoir.org/指示创建一个新项目 - 我跑lein uberwar - 这会生成一个(可执行)jar - 但它无法找到清单中提到的主类 - 没有找到类文件。clojure-noir项目与生成的uberjar - NoClassDefFoundError

该应用程序运行“lein run”运行。

是指能够运行这种方式(我希望它会启动一个嵌入式码头?)

FYI Jar produced with lein uberjar fails on NoClassDefFoundError类似的uberjar - 但过时的(这是与特定leiningen其中的一个较新版本错误已修复)。

+0

我在webnoir网站上找不到任何关于“超级”,“战争”或“罐子”的提及。它只提到安装lein-noir插件并运行它来创建一个新项目。 – ivant 2012-04-27 06:51:59

回答

4

关键是要增加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

相关问题