2

我有一个使用 部署的 Clojure/Ring/Clojurescript 项目lein uberjar,然后使用java -jar whatever-0.1-standalone.jar. 直到最近,它运行良好。

现在,当我启动它时,我会看到一个 REPL,就像这样;

Clojure 1.7.0 user=>

认为它一定是我的代码库中的某些东西,我已经(使用 git)恢复到我知道曾经可以工作的状态,但问题仍然存在。

由于问题不在我的代码库中,我尝试了旧版本的 leiningen - 仍然没有运气。

这是我的project.clj:

(defproject acfe "0.5"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
                        :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[compojure "1.4.0"]
                                 [org.clojure/clojure "1.7.0"]
                                 [org.clojure/data.json "0.2.6"]
                                 [org.clojure/clojurescript "0.0-3308"]
                                 [org.clojure/core.async "0.1.346.0-17112a-alpha"]
                                 [mysql/mysql-connector-java "5.1.32"]
                                 [org.clojure/java.jdbc "0.4.1"]
                                 [yesql "0.4.2"]
                                 [ring "1.4.0"]
                                 [ring-basic-authentication "1.0.5"]
                                 [bk/ring-gzip "0.1.1"]
                                 [prismatic/dommy "1.1.0"]
                                 [enlive "1.1.6"]
                                 [cljs-ajax "0.3.13"]]
  :plugins [[lein-ring "0.9.6"]
                        [lein-cljsbuild "1.0.6"]]
  :ring {:handler acfe.core/app
                 :port 3001}
  :cljsbuild
  {:builds
   {:app
        {:source-paths ["src-cljs"]
         :compiler
         {:optimizations :simple
          :output-to "resources/public/js/out/app.js"
          :pretty-print true}}}})
4

2 回答 2

4

你确定你以前真的在用它建造罐子lein uberjar,当它工作的时候?你没有主命名空间,而是依赖lein-ring插件为你制造一个,这意味着你应该运行lein ring uberjar

于 2015-08-27T01:23:45.727 回答
2

如果您在 project.clj 中没有:main命名空间,则 leiningen(至少是最近的版本)将默认为 clojure.main。如果你解压jar文件并查看里面META-INF/MANIFEST.MF,你可以检查。您将看到如下所示的一行:

Main-Class: clojure.main

添加这样的映射来设置主类:

:main whatever.core(假设您想要该-main名称空间中的函数)。

于 2015-08-27T01:24:20.627 回答