首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lein uberjar运行repl,而不是我的应用程序。

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

Stack Overflow用户
提问于 2015-08-27 00:43:12
回答 2查看 706关注 0票数 2

我有一个Clojure/Ring/Clojurescript项目,我用lein uberjar部署它,然后用java -jar whatever-0.1-standalone.jar启动它。直到最近,它还能正常工作。

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

Clojure 1.7.0 user=>

考虑到这一定是我的代码库中的一些东西,我已经(用git)恢复到了我所知道的用于工作的状态,但是问题仍然发生。

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

这是我的project.clj:

代码语言:javascript
复制
(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}}}})
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-27 01:23:45

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

票数 4
EN

Stack Overflow用户

发布于 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函数)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32238914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档