[x] Updating to using the latest released version of Leiningen (lein upgrade).
[x] Moving your ~/.lein/profiles.clj (if present) out of the way. This contains third-party dependencies and plugins that can cause problems inside Leiningen.
[x] Updating any old versions of plugins in your project.clj, especially if the problem is with a plugin not working. Old versions of plugins like nREPL and CIDER (as well as others) can cause problems with newer versions of Leiningen.
[x] (If you are using Java 9 or newer), updating your dependencies to their most recent versions. Recent JDK's have introduced changes which can break some Clojure libraries.
Describe the bug
Maven has a feature called "relocation" where a pom for a given artifact can signal that this artifact has relocated to a different groupId. This acts as kind of redirect, for instance if you depend on org.hibernate/hibernate-validator, then this will actually end up using org.hibernate.validator/hibernate-validator, because of this stanza in the pom.xml:
Initial debugging steps
lein upgrade
).~/.lein/profiles.clj
(if present) out of the way. This contains third-party dependencies and plugins that can cause problems inside Leiningen.project.clj
, especially if the problem is with a plugin not working. Old versions of plugins like nREPL and CIDER (as well as others) can cause problems with newer versions of Leiningen.Describe the bug
Maven has a feature called "relocation" where a pom for a given artifact can signal that this artifact has relocated to a different groupId. This acts as kind of redirect, for instance if you depend on
org.hibernate/hibernate-validator
, then this will actually end up usingorg.hibernate.validator/hibernate-validator
, because of this stanza in thepom.xml
:This in itself works fine, the new artifact will be downloaded and added to the classpath, but it will not get listed when calling
lein deps :tree
.To Reproduce Steps to reproduce the behavior:
project.clj:
and invoke
lein deps :tree
result:
Actual behavior
Side note, I have verified with
clojure.java.classpath
that hibernate-validator is indeed on the classpath:Expected behavior
Environment
Additional context
This is prompted by https://github.com/clojars/clojars-web/issues/801 and https://github.com/lambdaisland/open-source/issues/2. Due to the new Clojars policies around group id naming there is some interest in Maven's relocation support, and we are looking at what the support is across tools.