Próbuję zrozumieć zachowanie "Lieningen" podczas tworzenia uberjar
. Poniżej znajduje się minimalny przykład, który powiela zachowanie:Dlaczego `lein uberjar` ocenia zmienne zdefiniowane przez` def`?
(ns my-stuff.core
(:gen-class))
(def some-var (throw (Exception. "boom!")))
(defn -main [& args]
(println some-var))
Gdy ta jest wykonywana z lein run
wyraźnie się niepowodzeniem z wyjątek. Jednak nie rozumiem, dlaczego wykonywanie lein uberjar
kończy się niepowodzeniem z wyjątku od definicji zmiennej? Dlaczego wykonanie lein uberjar
próbuje ocenić wartość zmiennej? Czy jest to zadanie specyficzne dla zadania uberjar
, czy też brakuje mi czegoś bardziej merytorycznego na temat Clojure lub Leiningen?