Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure lein 2.5.2 uberjar NoClassDefFoundError在添加了新的源路径后出错,但没有它成功_Clojure_Leiningen_Uberjar - Fatal编程技术网

Clojure lein 2.5.2 uberjar NoClassDefFoundError在添加了新的源路径后出错,但没有它成功

Clojure lein 2.5.2 uberjar NoClassDefFoundError在添加了新的源路径后出错,但没有它成功,clojure,leiningen,uberjar,Clojure,Leiningen,Uberjar,我正在努力制作一个jar文件,如果我添加源路径,它将无法工作。我跑 lein with-profiles prod uberjar 这是我的项目。clj我把它缩短了一点,主要是它包含了luminus模板 (defproject codapay "0.1.0-SNAPSHOT" :description "FIXME: write description" :url "http://example.com/FIXME" :dependencies [[org.clojure/cloju

我正在努力制作一个jar文件,如果我添加源路径,它将无法工作。我跑

lein with-profiles prod uberjar
这是我的项目。clj我把它缩短了一点,主要是它包含了luminus模板

(defproject codapay "0.1.0-SNAPSHOT"

 :description "FIXME: write description"
 :url "http://example.com/FIXME"

 :dependencies [[org.clojure/clojure "1.7.0"]
                [selmer "0.9.0"]
                [org.immutant/web "2.0.2"]
                [clj-http "2.0.0"]
                [cheshire "5.5.0"]
                ........
                [environ "1.0.0"]
                [com.stuartsierra/component "0.2.3"]]

  :min-lein-version "2.0.0"
  :uberjar-name "codapay.jar"
  :jvm-opts ["-server"]
  :target-path "target/%s/"
  :plugins [[lein-environ "1.0.0"]]
  :profiles
  {:prod {;;:omit-source true
         :env {:production true}
         :aot :all
         :source-paths ["dev"]
         :uberjar-name "coda.jar"
         :main codapay.core}})
这是我的主要任务

(ns codapay.core
  (:require [codapay.handler :refer [app init destroy]]
            [immutant.web :as immutant]
            [clojure.tools.nrepl.server :as nrepl]
            [taoensso.timbre :as timbre]
            [environ.core :refer [env]]
            [codapay.entry :refer [start-app]])
  (:gen-class))

(defn -main [& args]
  (start-app args))
我使用

java -jar coda.jar
它因这个例外而死亡

Exception in thread "main" java.lang.ExceptionInInitializerError
        at clojure.lang.Namespace.<init>(Namespace.java:34)
        at clojure.lang.Namespace.findOrCreate(Namespace.java:176)
        at clojure.lang.Var.internPrivate(Var.java:151)
        at codapay.core.<clinit>(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: clout/core/CompiledRoute, compiling:(user.clj:1:1)
它收到了相同的错误,但如果删除aot或源路径,它将成功运行

如果你想知道真正的项目是什么样子,这里是链接


您的
项目.clj
上没有源路径,配置文件中除外?这听起来很奇怪。尝试使用profiles+prod
,这样它会将prod添加到默认配置文件中。更准确地说,这样prod配置文件会合并到中的默认配置文件上,并且可能其他配置文件我认为项目默认配置文件将包括源路径“src”。但是我应该在项目中添加“src”路径吗?我已经试过
使用profiles+prod run
了,但仍然遇到同样的错误,让我感到困扰的是,当我提取jar文件时,
clout/core/CompiledRoute
是正常存在的
lein with-profiles prod run