2

http://www.webnoir.org/の指示に従って、新しいプロジェクトを作成します-lein uberwarを実行しました-これにより、単一の(実行可能)jarが生成されます-ただし、マニフェストに記載されているようにメインクラスを見つけることができません-クラスがありませんファイルが見つかりました。

アプリは「leinrun」で実行されます。

uberjarは、この方法で実行できるようになっていますか(埋め込み桟橋を起動すると思いますか?)

leinuberjarで作成されたFYIJarはNoClassDefFoundErrorで失敗しますが、同様ですが、古くなっています(これは、特定のバグが修正された新しいバージョンのleiningenを使用しています)。

4

1 に答える 1

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 に対して正常に動作するようになりました。

于 2012-04-27T17:24:58.743 に答える