Clojure Lein uberjar运行repl,而不是我的应用程序

Clojure Lein uberjar运行repl,而不是我的应用程序,clojure,leiningen,uberjar,Clojure,Leiningen,Uberjar,我有一个Clojure/Ring/Clojurescript项目,我用leinuberjar部署它,然后用java-jar whatever-0.1-standalone.jar启动它。直到最近,它一直运作良好 现在,当我启动它时,我会看到一个REPL,如下所示 Clojure 1.7.0 用户=> 我认为这一定是我的代码库中的某个东西,所以我(使用git)将它恢复到了我知道曾经工作过的状态,但问题仍然存在 由于问题不在我的代码库中,我尝试了一个旧版本的leiningen-仍然没有运气 这是我的

我有一个Clojure/Ring/Clojurescript项目,我用
leinuberjar
部署它,然后用
java-jar whatever-0.1-standalone.jar
启动它。直到最近,它一直运作良好

现在,当我启动它时,我会看到一个REPL,如下所示

Clojure 1.7.0
用户=>

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

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

这是我的项目。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}}}})

你确定你以前在用
leinuberjar
构建jar时,它还在工作吗?你没有主名称空间,而是依靠
lein ring
插件为你制作一个,这意味着你应该运行
lein ring uberjar

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

Main类:clojure.Main

添加如下映射以设置主类:


:main whatever.core
(假设您希望在该名称空间中使用
-main
函数)。

就这样,谢谢!我忘了运行哪个命令,
lein-ring-uberjar
运行得很好。谢谢!我刚刚遇到了同样的问题!