Here's some maven-specific discussion:
They have a defined order since 2.0.9. and declaration order is considered 
for transitive dependencies conflict.

Intellij's Dependencies tab in Module settings: You can re-order the 
dependencies and they reflect in the classpath.

lein classpath -> local paths added first, JARs afterwards

Please consider returning to a :paths first, then :deps in a stable order.

I know it is not pretty and it is not desirable for code to be dependent on 
that, but resource-loading uses the CLASSPATH and that makes the order of 
dependencies intrinsically linked to locating resources.

I'd also rather fighweel-main behave differently, but it relies on 
(io/resource "public/index.html")


On Tuesday, August 11, 2020 at 11:55:07 AM UTC-7 Alex Miller wrote:

> Just to beat the horse...
> On Tue, Aug 11, 2020 at 1:05 PM '' via Clojure <
>> wrote:
>> Changing the order of classpath entry and not having paths be at the 
>> beginning of the CLASSPATH will break existing code that uses `(io/resource 
>> ...)` to load resources from the CLASSPATH.
>> While in theory the order of the classpath should not matter, in practice 
>> it does, often involuntarily.
> Just to reiterate so it's clear, this is bad, at least for deps and 
> usually for most other uses. That's why we provide features in deps.edn to 
> encourage you to be specific when you are overriding something that exists 
> in the classpath rather than relying on an ordering mechanism. If there is 
> a use case where shadowing is a feature and not a bug that is not already 
> covered, I'd be interested in hearing about it.
>> Fighweel-main's default behavior is to load `public/index.html` which 
>> works fine if the local paths come first, but will fail if any other JAR 
>> has a `public/index.html` resource.
>> And as we learned, they do!
> This is bad, and we should loudly complain about it to whoever is doing 
> it, not just accept it. (It's probably accidental, not intentional.)
>> Please consider going back to the old, defined behavior.
> I am considering options. 
>> All other build tools I know have - for good or bad - a defined CLASSPATH 
>> order.
> Do they? I'm not aware of documentation about or guarantees for this with 
> either lein or Maven but would love to be pointed at those docs if you're 
> aware of something. Both Maven and lein have considered how to make builds 
> repeatable/reproducible, but I'm actually not aware that the order is well 
> defined and documented (and I have looked).

You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
For more options, visit this group at
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
To view this discussion on the web visit

Reply via email to