Fork me on GitHub
#tools-deps
<
2023-12-15
>
Charles Comstock04:12:30

I'm running into a problem with resolving transitive dependencies that are in a specified :mvn/repos repository. Specifically the case is that some visualization/sketch project depends on quil, and quil depends on jogamp specific dependencies for opengl rendering. I have :mvn/repos {"jogl" {:url ""}} in the quil deps.edn, and it showed up in the generated pom as a repository. If I do any dependency resolution inside of the quil project, it works, but if I attempt to use quil as a dependency in another project, the jogamp repository does not appear to be transitively propagating for resolution downstream. If I include the mvn/repos override in the downstream project it starts working, but otherwise it tries to fetch the jogamp jars from maven central instead of jogamp. Is this a problem anyone else has encountered? I assumed the repos definition would propagate transitively, at least based on how maven works, but wasn't sure if that was the case for deps.edn resolvers. It's also possible I have a problem with my jar packaging/pom file, but given it's kind of an edge case it seemed worthwhile to ask about in case someone else had some ideas. Thanks!

Alex Miller (Clojure team)05:12:26

this is intentional - from a security point of view we've decided not to include mvn repositories from transitive deps in the parent and you need to re-include at use

Charles Comstock05:12:29

Thanks for clarifying, that makes sense. I'll have to think of a workaround, but I'm glad I know it's not from a mistake I made.

jasalt16:01:31

Just bumped into this and found answer here. Posted docs issue about it https://github.com/clojure/clojure-site/issues/686.

👍 1