2012-04-26 3 views
2

http://www.webnoir.org/ 새 프로젝트를 만드는 지침에 따라 - 나는 uilwar를 실행했다. 이것은 단일 (실행 가능한) jar를 생성하지만 - 매니페스트에서 언급 한 주 클래스를 찾을 수 없다. - 클래스 파일을 찾을 수 없습니다.생성 된 uberjar가있는 clojure-noir 프로젝트 - NoClassDefFoundError

앱 실행은 "lein run"으로 실행됩니다.

이런 식으로 (? 나는 그것이 내장 부두를 출시 예상)

참고 Jar produced with lein uberjar fails on NoClassDefFoundError이 유사하다 실행할 수 있도록 의미했다 uberjar -하지만 날짜가 (이 leiningen 경우 특정의 최신 버전입니다 버그 수정).

+0

webnoir 사이트에서 "uber", "war"또는 "jar"에 대한 언급을 찾을 수 없습니다. 그것은 단지 lein-noir 플러그인을 설치하고 그것을 실행하여 새로운 프로젝트를 생성하는 것을 언급합니다. – ivant

답변

4

비결은 세대 급은 예를 들어

(ns myproject.server ... (:gen-class))

server.clj에 추가하는 것입니다 lein uberjar를 사용 난 그냥 배치 한을, 나는 다음과 같은 한 :에서

내 project.clj : 내 server.clj에서

:main myproject.server 

:

(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}))) 
  • 지금은 자바 -jar myproject라는-standalone.jar에 잘 작동
  • 로드 뷰

상단

  • 세대 급의 의견을 필요로한다.

  • +0

    당신이 맞습니다 : gen-class가 빠졌습니다. –