This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-01-20
Channels
- # announcements (8)
- # babashka (19)
- # beginners (100)
- # boot (3)
- # calva (16)
- # cider (8)
- # cljdoc (6)
- # cljsrn (15)
- # clojure (73)
- # clojure-europe (7)
- # clojure-france (1)
- # clojure-italy (12)
- # clojure-nl (11)
- # clojure-sg (1)
- # clojure-uk (17)
- # clojurescript (63)
- # cursive (22)
- # data-science (2)
- # datomic (2)
- # defnpodcast (1)
- # docs (1)
- # fulcro (7)
- # graalvm (8)
- # jackdaw (1)
- # kaocha (11)
- # off-topic (26)
- # pedestal (4)
- # planck (1)
- # re-frame (35)
- # reitit (5)
- # ring (3)
- # shadow-cljs (25)
- # slack-help (11)
- # spacemacs (8)
- # specter (2)
- # tools-deps (61)
- # vscode (6)
- # xtdb (3)
Got an error trying to start clj repl with rebl
Error building classpath. org.apache.maven.repository.internal.DefaultModelResolver.<init>(org.eclipse.aether.RepositorySystemSession, org.eclipse.aether.RequestTrace, java.lang.String, org.eclipse.aether.impl.ArtifactResolver, org.eclipse.aether.impl.VersionRangeResolver, org.eclipse.aether.impl.RemoteRepositoryManager, java.util.List)
java.lang.NoSuchMethodException: org.apache.maven.repository.internal.DefaultModelResolver.<init>(org.eclipse.aether.RepositorySystemSession, org.eclipse.aether.RequestTrace, java.lang.String, org.eclipse.aether.impl.ArtifactResolver, org.eclipse.aether.impl.VersionRangeResolver, org.eclipse.aether.impl.RemoteRepositoryManager, java.util.List)
at java.lang.Class.getConstructor0(Class.java:3082)
at java.lang.Class.getConstructor(Class.java:1825)
at clojure.tools.deps.alpha.extensions.pom$model_resolver.invokeStatic(pom.clj:49)
at clojure.tools.deps.alpha.extensions.pom$model_resolver.invoke(pom.clj:39)
at clojure.tools.deps.alpha.extensions.pom$read_model.invokeStatic(pom.clj:60)
at clojure.tools.deps.alpha.extensions.pom$read_model.invoke(pom.clj:54)
at clojure.tools.deps.alpha.extensions.local$eval925$fn__927.invoke(local.clj:68)
at clojure.lang.MultiFn.invoke(MultiFn.java:244)
at clojure.tools.deps.alpha$expand_deps$fn__1191.invoke(alpha.clj:191)
at clojure.tools.deps.alpha$expand_deps.invokeStatic(alpha.clj:190)
at clojure.tools.deps.alpha$expand_deps.invoke(alpha.clj:168)
at clojure.tools.deps.alpha$resolve_deps.invokeStatic(alpha.clj:236)
at clojure.tools.deps.alpha$resolve_deps.invoke(alpha.clj:216)
at clojure.tools.deps.alpha.script.make_classpath2$create_classpath.invokeStatic(make_classpath2.clj:56)
at clojure.tools.deps.alpha.script.make_classpath2$create_classpath.invoke(make_classpath2.clj:48)
at clojure.tools.deps.alpha.script.make_classpath2$run_core.invokeStatic(make_classpath2.clj:82)
at clojure.tools.deps.alpha.script.make_classpath2$run_core.invoke(make_classpath2.clj:73)
at clojure.tools.deps.alpha.script.make_classpath2$run.invokeStatic(make_classpath2.clj:102)
at clojure.tools.deps.alpha.script.make_classpath2$run.invoke(make_classpath2.clj:96)
at clojure.tools.deps.alpha.script.make_classpath2$_main.invokeStatic(make_classpath2.clj:147)
at clojure.tools.deps.alpha.script.make_classpath2$_main.doInvoke(make_classpath2.clj:119)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.lang.Var.applyTo(Var.java:705)
at clojure.core$apply.invokeStatic(core.clj:665)
at clojure.main$main_opt.invokeStatic(main.clj:514)
at clojure.main$main_opt.invoke(main.clj:510)
at clojure.main$main.invokeStatic(main.clj:664)
at clojure.main$main.doInvoke(main.clj:616)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.lang.Var.applyTo(Var.java:705)
at clojure.main.main(main.java:40)
deps.edn
{:deps {}
:aliases
{:rebl {:extra-deps {org.clojure/clojure {:mvn/version "1.10.1"}
org.clojure/core.async {:mvn/version "0.4.490"}
com.cognitect/rebl {:local/root "/path/to/REBL.jar"}}
:main-opts ["-m" "cognitect.rebl"]}}}
The command I run
clj -R:rebl
Has anyone had the similar issue?What version does clojure -Sdescribe
report?
@tap And you're aware that -R:rebl
will add those dependencies but won't run REBL -- it will run the default behavior, which is to start a regular clojure.main
REPL.
{:version "1.10.1.496"
:config-files ["/usr/local/Cellar/clojure/1.10.1.496/deps.edn" "/Users/xxx/.clojure/deps.edn" "deps.edn" ]
:config-user "/Users/xxx/.clojure/deps.edn"
:config-project "deps.edn"
:install-dir "/usr/local/Cellar/clojure/1.10.1.496"
:config-dir "/Users/xxx/.clojure"
:cache-dir ".cpcache"
:force false
:repro false
:resolve-aliases ""
:classpath-aliases ""
:jvm-aliases ""
:main-aliases ""
:all-aliases ""}
Your deps.edn
file doesn't look valid -- you have five }
on that line with com.cognitect/rebl
That would put :main-opts
outside the whole { }
of the deps.
Yeah. Fixed up there. I removed :main-opts
just to test it out. Miss that when I readded it to ask question here.
Yes. I'm aware that -R
won't run REBL. Just want to make it clearer that it's not related to :main-opts
.
Which version of REBL is that local JAR file?
Ok, I have that setup locally... just a sec...
Yeah, with -R:rebl I get that same error. I've just never run it that way -- that's odd.
Let me switch computers and try something...
I saw a quick fix related to pom for tools.deps.alpha recently. Not sure if it's related. https://github.com/clojure/tools.deps.alpha/commit/fbe57d942af2016229e0aabba9121e62de848729 I'm also not sure if I'm using the latest tools.deps.alpha at the moment.
Could be that or https://github.com/clojure/tools.deps.alpha/commit/70917267ca38fa971b1b0ebcc73084516f9f8af3
I tried it with the add-lib
branch SHA that I normally use and got the same exception.
Yeah, I can't start my regular dev environment with the latest clojure
version with REBL (I've been on vacation for a several days so this is the first time I've tried since the last clojure
/`tools.deps.alpha` update) -- /cc @alexmiller looks like the latest release breaks when used with REBL
Looks like clojure
isn't set up in a way that earlier releases can be installed with brew
π
brew install [email protected]
fails
@seancorfield @tap it looks like i am able to reproduce the problem as well (this is a linux box)
Yeah, I think the latest changes in clojure
/`tools.deps.alpha` are incompatible with the current release of REBL -- because it is AOT'd
Looks like Cognitect will need to release a new version of REBL to fix this (which in turn won't be compatible with earlier clojure
/`tools.deps.alpha` builds, I suspect).
Weirdly, there's nothing I can see in the REBL JAR or its pom.xml
that suggests it wouldn't be compatible... so I guess we have to wait for @alexmiller and/or some other Cognitect folks to chime in tomorrow. Very frustrating we can't downgrade clojure
via Homebrew tho'...
i guess the bit about "installing from a specific commit" here: http://effectif.com/mac-os-x/installing-specific-version-of-homebrew-formula doesn't apply?
Workaround:
$ curl -O
$ curl -O
$ tar xvfz clojure-tools-1.10.1.492.tar.gz
and then edit your current clojure
shell script to point to the clojure-tools/clojure-tools-1.10.1.492.jar
from that expansion instead of the installed 496 version.(at least I'll be back up and running at work tomorrow morning now!)
the exception above from @tap is a regression that is fixed in master and I'll release it tomorrow
you can actually get the older brew formulas if you want to download
rename that to clojure.rb, then brew reinstall --force clojure.rb
brew can only reinstall older versions that you have previously downloaded and installed that you still have in the brew cache
there is no repository of versions like there is with Maven or something, just "the current version"
Is there an option on upgrade
or in a specific formula to not delete the old version?
(and good to know on the force install from a downloaded older version)
by default, I think it leaves it
ls ~/Library/_Caches_/Homebrew
and then Formula/clojure under that
Is it appropriate to write about this how to downgrade brew clj package on https://clojure.org under Guides section? I'll do that if y'all think so.
nah, I'd prefer to bury it in reference and link
Under ~/Library/Caches/Homebrew
is just the current version of each installed package.
Latest (1.10.1.502) with regression fixes is now available in brew etc
Fixed for pom deps and pom gen
Works with REBL now -- thank you for the swift update!
I also added some tests to catch it earlier next time!
oh also, this release has the version as the first line of clj -h
You have been worn down explaining the -Sdescribe
and -Sverbose
options π Soon you will succumb to the pull to the dark side of adding a --version
option.
even that won't be the end - there will be confusion between the clojure tools version, the clojure tools default clojure version, and the version of clojure specified by the current project :)
Long ago I gave myself slightly more sanity by including a line like the following at the beginning of Eastwood's output, by default: == Eastwood 0.3.6-SNAPSHOT Clojure 1.10.0 JVM 1.8.0_192 ==
Heh, that's why all our services report their git tag/SHA, along with the version of Clojure and the JVM at startup! π