tonsky/uberdeps

uberdeps run error in macs

Closed this issue · 2 comments

  • 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.

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}}

Solved,
It happened because my ~/.clojure/deps.edn :deps use add-libs version of clojure.tools.alpha.
remove that dependency solve the problem.