uberdeps run error in macs
Closed this issue · 2 comments
idhowardgj94 commented
- os version: MacOS Monterey 12.5
- hardware: Macbook pro 2019
- cpu intel Core i5
- openjdk version: 16.0.1
- clojure cli version: 1.10.3.1069
Follow readme instruction:
mkdir classes
clojure -M -e "(compile 'com.howard.schedule-crawler.main)"
clojure -M:uberjar --main-class com.howard.schedule-crawler.main
get following error:
Syntax error (FileNotFoundException) compiling at (uberdeps/uberjar.clj:1:1).
Could not locate clojure/tools/deps/util/dir__init.class, clojure/tools/deps/util/dir.clj or clojure/tools/deps/util/dir.cljc on classpath.
deps.edn:
{:paths ["classes" "resources" "../../gold-web/main" "../../gold-web/resources"]
:deps {org.clojure/clojure {:mvn/version "1.10.1"}
org.clojure/tools.deps.alpha {:mvn/version "0.12.985"}
uberdeps/uberdeps {:mvn/version "1.3.0"}
org.apache.logging.log4j/log4j-slf4j-impl {:mvn/version "2.19.0"}
jarohen/chime {:mvn/version "0.3.3"}
org.clojure/tools.logging {:mvn/version "1.2.4"}
;; gold/restful-api {:local/root "./bases/restful-api"}
gold/schedule-crawler {:local/root "../../bases/schedule-crawler"}
gold/crawler {:local/root "../../components/crawler"}
gold/database {:local/root "../../components/database"}}
:jvm-opts ["-Dclojure.tools.logging.factory=clojure.tools.logging.impl/slf4j-factory"
"-Dlog4j2.configurationFile=log4j2.properties"]
:aliases {:uberjar {:replace-deps {uberdeps/uberdeps {:mvn/version "1.3.0"}}
:replace-paths []
:main-opts ["-m" "uberdeps.uberjar"]
:jvm-opts ["-Dclojure.tools.logging.factory=clojure.tools.logging.impl/slf4j-factory"
"-Dlog4j2.configurationFile=log4j2.properties"]}
:opts {:jvm-opts ["-Dclojure.tools.logging.factory=clojure.tools.logging.impl/slf4j-factory"
"-Dlog4j2.configurationFile=log4j2.properties"]}
:build {:main-opts ["-m" "com.howard.schedule-crawler.main"]}
:test {:extra-paths []
:extra-deps {}}}}
successful build jar using my ubuntu lab.
idhowardgj94 commented
error log
{:clojure.main/message
"Syntax error (FileNotFoundException) compiling at (uberdeps/uberjar.clj:1:1).\nCould not locate clojure/tools/deps/util/dir__init.class, clojure/tools/deps/util/dir.clj or clojure/tools/deps/util/dir.cljc on classpath.\n",
:clojure.main/triage
{:clojure.error/phase :compile-syntax-check,
:clojure.error/line 1,
:clojure.error/column 1,
:clojure.error/source "uberjar.clj",
:clojure.error/path "uberdeps/uberjar.clj",
:clojure.error/class java.io.FileNotFoundException,
:clojure.error/cause
"Could not locate clojure/tools/deps/util/dir__init.class, clojure/tools/deps/util/dir.clj or clojure/tools/deps/util/dir.cljc on classpath."},
:clojure.main/trace
{:via
[{:type clojure.lang.Compiler$CompilerException,
:message "Syntax error compiling at (uberdeps/uberjar.clj:1:1).",
:data
{:clojure.error/phase :compile-syntax-check,
:clojure.error/line 1,
:clojure.error/column 1,
:clojure.error/source "uberdeps/uberjar.clj"},
:at [clojure.lang.Compiler load "Compiler.java" 7652]}
{:type java.io.FileNotFoundException,
:message
"Could not locate clojure/tools/deps/util/dir__init.class, clojure/tools/deps/util/dir.clj or clojure/tools/deps/util/dir.cljc on classpath.",
:at [clojure.lang.RT load "RT.java" 462]}],
:trace
[[clojure.lang.RT load "RT.java" 462]
[clojure.lang.RT load "RT.java" 424]
[clojure.core$load$fn__6856 invoke "core.clj" 6115]
[clojure.core$load invokeStatic "core.clj" 6114]
[clojure.core$load doInvoke "core.clj" 6098]
[clojure.lang.RestFn invoke "RestFn.java" 408]
[clojure.core$load_one invokeStatic "core.clj" 5897]
[clojure.core$load_one invoke "core.clj" 5892]
[clojure.core$load_lib$fn__6796 invoke "core.clj" 5937]
[clojure.core$load_lib invokeStatic "core.clj" 5936]
[clojure.core$load_lib doInvoke "core.clj" 5917]
[clojure.lang.RestFn applyTo "RestFn.java" 142]
[clojure.core$apply invokeStatic "core.clj" 669]
[clojure.core$load_libs invokeStatic "core.clj" 5974]
[clojure.core$load_libs doInvoke "core.clj" 5958]
[clojure.lang.RestFn applyTo "RestFn.java" 137]
[clojure.core$apply invokeStatic "core.clj" 669]
[clojure.core$require invokeStatic "core.clj" 5996]
[clojure.core$require doInvoke "core.clj" 5996]
[clojure.lang.RestFn invoke "RestFn.java" 482]
[uberdeps.uberjar$eval138$loading__6737__auto____139
invoke
"uberjar.clj"
1]
[uberdeps.uberjar$eval138 invokeStatic "uberjar.clj" 1]
[uberdeps.uberjar$eval138 invoke "uberjar.clj" 1]
[clojure.lang.Compiler eval "Compiler.java" 7181]
[clojure.lang.Compiler eval "Compiler.java" 7170]
[clojure.lang.Compiler load "Compiler.java" 7640]
[clojure.lang.RT loadResourceScript "RT.java" 381]
[clojure.lang.RT loadResourceScript "RT.java" 372]
[clojure.lang.RT load "RT.java" 459]
[clojure.lang.RT load "RT.java" 424]
[clojure.core$load$fn__6856 invoke "core.clj" 6115]
[clojure.core$load invokeStatic "core.clj" 6114]
[clojure.core$load doInvoke "core.clj" 6098]
[clojure.lang.RestFn invoke "RestFn.java" 408]
[clojure.core$load_one invokeStatic "core.clj" 5897]
[clojure.core$load_one invoke "core.clj" 5892]
[clojure.core$load_lib$fn__6796 invoke "core.clj" 5937]
[clojure.core$load_lib invokeStatic "core.clj" 5936]
[clojure.core$load_lib doInvoke "core.clj" 5917]
[clojure.lang.RestFn applyTo "RestFn.java" 142]
[clojure.core$apply invokeStatic "core.clj" 669]
[clojure.core$load_libs invokeStatic "core.clj" 5974]
[clojure.core$load_libs doInvoke "core.clj" 5958]
[clojure.lang.RestFn applyTo "RestFn.java" 137]
[clojure.core$apply invokeStatic "core.clj" 669]
[clojure.core$require invokeStatic "core.clj" 5996]
[clojure.main$main_opt invokeStatic "main.clj" 514]
[clojure.main$main_opt invoke "main.clj" 510]
[clojure.main$main invokeStatic "main.clj" 664]
[clojure.main$main doInvoke "main.clj" 616]
[clojure.lang.RestFn applyTo "RestFn.java" 137]
[clojure.lang.Var applyTo "Var.java" 705]
[clojure.main main "main.java" 40]],
:cause
"Could not locate clojure/tools/deps/util/dir__init.class, clojure/tools/deps/util/dir.clj or clojure/tools/deps/util/dir.cljc on classpath.",
:phase :compile-syntax-check}}
idhowardgj94 commented
Solved,
It happened because my ~/.clojure/deps.edn
:deps
use add-libs version of clojure.tools.alpha.
remove that dependency solve the problem.