我有一个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}}}})发布于 2015-08-27 01:23:45
您确定以前使用lein uberjar构建jar时,它还在工作吗?您没有主名称空间,而是依赖于lein-ring插件为您制作一个名称空间,这意味着您应该运行lein ring uberjar。
发布于 2015-08-27 01:24:20
如果在:main中没有project.clj名称空间,那么leiningen (至少最近的版本)将默认为clojure.main。如果您解压缩jar文件并查看META-INF/MANIFEST.MF内部,您可以检查。你会看到这样的一条线:
Main-Class: clojure.main
添加这样的映射来设置主类:
:main whatever.core (假设您希望在该命名空间中使用-main函数)。
https://stackoverflow.com/questions/32238914
复制相似问题