按照http://www.webnoir.org/指示创建一个新项目 - 我运行了lein uberwar - 这会生成一个(可执行的)jar - 但是它无法找到清单中提到的主类 - 没有找到类文件。
应用程序以“lein run”运行。
uberjar是否能够以这种方式运行(我希望它能够启动嵌入式码头?)
FYI Jar produced with lein uberjar fails on NoClassDefFoundError类似 - 但过时了(这是leiningen的新版本,其中修复了特定错误。)
答案 0 :(得分:4)
诀窍是将gen-class添加到server.clj
(ns myproject.server ... (:gen-class))
例如: 我刚刚使用lein 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 -jar myproject-standalone.jar。