2017-05-09 5 views
0

Lein이 내 주요 메소드를 실행하지 않습니다. 심지어 구문 오류를 도입했는데 오류를 잡아 내지 못합니다. 나는 정말로 곤란하다. 나는 지역 사회의 도움을 크게 감사 할 것입니다.Lein이 내 주요 메소드를 실행하지 않습니다.

기본 방법이 올바르게 지정되었다고 생각합니다. 첫 번째 코드 샘플은 server.clj이며 main 메소드가 있습니다. 다음은 내 project.clj입니다.

(ns naac.server 
    (:require [naac.handler :refer [handler]] 
      [config.core :refer [env]] 
      [migratus.core :as migratus] 
      [ring.adapter.jetty :refer [run-jetty]] 
      [naac.db :refer [load-db!]]) 
    (:gen-class)) 

(def db-config {:store :database 
       :db (get (System/getenv) "DATABASE_URL" 
        "jdbc:postgresql://localhost:5432/jeff") 
       :migration-dir "migrations"}) 

(defn -main [& args] 
    (println args) 
    (doseq [a args] 
    (cond 
     (= a "migrate") 
     (do 
      (println "Migrate database...") 
      (migratus/migrate db-config) 
      (println "...Migration done.")) 
     (= a "rollback") 
     (do 
      (println "Rollback database...") 
      (migratus/rollback db-config) 
      (println "...Rollback done.")) 
     (= a "load") 
     (do 
      (println "Load database...") 
      (load-db!) 
      (println "...Load done.")))) 

    (if (> (count args) 0) (System/exit 0)) 

    (let [port (Integer/parseInt (or (env :port) "3000"))] 
    (run-jetty handler {:port port :join? false}))) 

내 project.clj는 :

(defproject naac "0.1.0-SNAPSHOT" 
    :dependencies [[org.clojure/clojure "1.8.0"] 
       [org.clojure/clojurescript "1.9.229"] 
       [reagent "0.6.0"] 
       [re-frame "0.9.2"] 
       [compojure "1.5.0"] 
       [yogthos/config "0.8"] 
       [migratus "0.9.2"] 
       [ring "1.4.0"] 
       [com.layerware/hugsql "0.4.7"] 
       [org.postgresql/postgresql "9.4.1207"]] 

    :plugins [[lein-cljsbuild "1.1.4"] 
      [migratus-lein "0.4.1"]] 

    :min-lein-version "2.5.3" 

    :source-paths ["src"] 

    :clean-targets ^{:protect false} ["resources/public/js/compiled" "target"] 

    :figwheel {:css-dirs ["resources/public/css"] 
      :ring-handler naac.handler/dev-handler} 

    :profiles 
    {:dev {:dependencies [[binaryage/devtools "0.8.2"]] 
     :plugins  [[lein-figwheel "0.5.9"]] 
     :resource-paths ["resources/config"]} 
    } 

    :migratus {:store :database 
      :db ~(get (System/getenv) "DATABASE_URL" 
        "jdbc:postgresql://localhost:5432/jeff") 
      :migration-dir "migrations"} 

    :cljsbuild 
    {:builds 
    [{:id   "dev" 
    :source-paths ["src/cljs"] 
    :figwheel  {:on-jsload "naac.core/mount-root"} 
    :compiler  {:main     naac.core 
        :output-to   "resources/public/js/compiled/app.js" 
        :output-dir   "resources/public/js/compiled/out" 
        :asset-path   "js/compiled/out" 
        :source-map-timestamp true 
        :preloads    [devtools.preload] 
        :external-config  {:devtools/config {:features-to-install :all}} 
        }} 

    {:id   "min" 
    :source-paths ["src/cljs"] 
    :jar true 
    :compiler  {:main   naac.core 
        :output-to  "resources/public/js/compiled/app.js" 
        :optimizations :advanced 
        :closure-defines {goog.DEBUG false} 
        :pretty-print false}} 


    ]} 

    :main naac.server 

    :aot [naac.server] 

    :uberjar-name "naac.jar" 

    :prep-tasks [["cljsbuild" "once" "min"] "compile"] 
) 

MY 디렉토리 구조 this image에서 볼 수 있습니다. 더 깊은 중첩 수준이 필요한 경우 here을 볼 수 있습니다.

Compiling ClojureScript... 
2017-05-09 12:12:12.739:INFO::main: Logging initialized @2438ms 
May 09, 2017 12:12:12 PM clojure.tools.logging$eval18$fn__22 invoke 
INFO: Starting migrations 
May 09, 2017 12:12:12 PM clojure.tools.logging$eval18$fn__22 invoke 
WARNING: skipping: '.DS_Store' migrations must match pattern: ^(\d+)-([^\.]+)((?:\.[^\.]+)+)$ 
May 09, 2017 12:12:12 PM clojure.tools.logging$eval18$fn__22 invoke 
INFO: Ending migrations 
May 09, 2017 12:12:12 PM clojure.tools.logging$eval18$fn__22 invoke 
INFO: Starting migrations 
May 09, 2017 12:12:12 PM clojure.tools.logging$eval18$fn__22 invoke 
WARNING: skipping: '.DS_Store' migrations must match pattern: ^(\d+)-([^\.]+)((?:\.[^\.]+)+)$ 
May 09, 2017 12:12:12 PM clojure.tools.logging$eval18$fn__22 invoke 
INFO: Ending migrations 
May 09, 2017 12:12:12 PM clojure.tools.logging$eval18$fn__22 invoke 
INFO: Starting migrations 
May 09, 2017 12:12:12 PM clojure.tools.logging$eval18$fn__22 invoke 
WARNING: skipping: '.DS_Store' migrations must match pattern: ^(\d+)-([^\.]+)((?:\.[^\.]+)+)$ 
May 09, 2017 12:12:12 PM clojure.tools.logging$eval18$fn__22 invoke 
INFO: Ending migrations 
+1

의 값으로 ["src/clj"]을 사용할 수 있습니다? –

+0

도움 주셔서 감사합니다. 여기 트리 구조가 있습니다. Yikes, 나는 코멘트에 그것을 타이핑 할 수 없다. 내 원래 게시물을 업데이트 할 수 있는지 보겠습니다. – Jeff

+0

디렉토리 구조의 이미지에 링크되었습니다. – Jeff

답변

1

문제는 당신 project.clj:source-paths입니다 : 내가 lein을 실행하면

나는이 출력을 얻을. Lein은 네임 스페이스 폴더가 원본 경로에 직접 있어야한다고 예상합니다.

당신은 src (예를 들어, src/naac/server.clj)에 직접 naac 폴더를 이동하거나 무엇을합니까`lein run` 출력 파일의 경로이며, 무엇 :source-paths