yogthos / clojure-error-message-catalog

a catalog of common Clojure errors and their meaning
448 stars 24 forks source link

Dependency conflict style errors? #22

Open raymcdermott opened 8 years ago

raymcdermott commented 8 years ago

I had an issue with a dependency conflict yesterday between aws and transit.

I don't want to call out those libs in particular as it's a general problem that happens all the time when you mix libs and they have different transitive dependency versions.

In this case I got a ClassNotFound error which is misleading. After a lot of head scratching I eventually tracked it down to a transitive version conflict for jackson.core. Let's just say that was not obvious - even if, like me, you do have a Java / Maven background.

The immediate fix was to add an exclusion on one of the libraries but that might break as each library version evolves.

How can I add this error / type of error to your catalog?

raymcdermott commented 8 years ago

I have since learned that using a lein setting pair :pedantic? abort would have shown this dependency conflict so it should be the recommended solution

yogthos commented 8 years ago

Yeah this is definitely something that would be good to have here. Could possibly add this as another cause here.

raymcdermott commented 8 years ago

I will double check the errors and see if an update to that page makes sense. The two cases seem quite unrelated so I want to avoid (any further) confusion.

raymcdermott commented 8 years ago

I actually get a different error

NoClassDefFoundError Could not initialize class com.amazonaws.ClientConfiguration base64fun.core/eval1580 (form-init8257767130423178111.clj:1)

So maybe another page?

yogthos commented 8 years ago

Yeah if the error is different, then a separate page would make more sense. The main use case I see is that people look for the error page name that looks similar to theirs and then look for causes on that page.

If the catalog gets big enough, I was thinking it might even make sense to make a lein plugin or something that could try to regex match errors and pull up docs for them.