【问题标题】:lein ring uberjar -- java.lang.NoClassDefFoundError: clojure/lang/Varlein ring uberjar -- java.lang.NoClassDefFoundError: clojure/lang/Var
【发布时间】:2019-01-21 21:52:27
【问题描述】:

不确定为什么当我 lein with-profile +live ring uberjar 然后 java -jar 我的 uberjar 时,我得到这个异常:java.lang.NoClassDefFoundError: clojure/lang/Var

project.clj:

(defproject gn-preview-api "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url  "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.9.0"]]
  :main gn-preview-api.www.app
  :target-path "target/%s"
  :profiles {:uberjar {:aot :all}
             :staging {:aot :all}
             :live    {:aot :all}
             :dev     {:plugins      [[lein-ring "0.9.7"]]
                       :dependencies [[javax.servlet/servlet-api "2.5"]]}})

有什么想法吗?

【问题讨论】:

    标签: clojure leiningen compojure ring compojure-api


    【解决方案1】:

    莱宁根produces two .jar files when you run lein uberjar。文件名以...-standalone.jar 结尾的那个是实际的 uberjar,它包含 Clojure(核心)。可以使用java -jar my_uberjar.jar 简单地运行独立文件。如果您运行另一个(非 uber jar),则 Clojure 需要在类路径中可用。

    您可以使用jar tf my_uberjar.jar 查看每个jar 文件中包含哪些依赖项。 uberjar 应包含clojure/core/...clojure/lang/... 等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-14
      • 2018-04-25
      • 2021-06-23
      • 2014-04-17
      • 1970-01-01
      • 2016-06-06
      • 2016-03-06
      • 1970-01-01
      相关资源
      最近更新 更多