Mic*_*cah 4 clojure compojure ring leiningen compojure-api
不确定为什么当我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"]]}})
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
运行时, Leiningen 会生成两个.jar文件lein uberjar。文件名结尾的文件...-standalone.jar是实际的uberjar,其中包含Clojure(核心)。独立文件可以使用轻松运行java -jar my_uberjar.jar。如果运行另一个(非超级jar),则Clojure需要在类路径中可用。
您可以使用来查看每个jar文件中包含哪些依赖项jar tf my_uberjar.jar。该uberjar应该包含clojure/core/...,clojure/lang/...等等。