Hi Robert, 

If you are familiar with the architecture, perhaps you can give me some hints where to intervene. The behavior I want is:

Assume I load a system at top-level and sprinkled in it or its dependencies there are a number of :mvn-modules as described earlier.
During preparation, the dependencies, exclusions, and managed-dependencies are collected at the level of the top-level system. 
Then, before any lisp or other files are loaded a single call is made to compute the combined maven dependencies and they are resolved and added to the classpath.
Finally the rest of the load goes as it usually does, although the :mvn-module components compile and loads are no-ops since their work has already been done up-front.

Thanks,
Alan

On Fri, Apr 7, 2017 at 5:48 PM, Robert Goldman <rpgoldman@sift.net> wrote:
On 4/7/17 Apr 7 -4:06 PM, Alan Ruttenberg wrote:
>
> On Fri, Apr 7, 2017 at 4:27 PM, Alan Ruttenberg
> <alanruttenberg@gmail.com <mailto:alanruttenberg@gmail.com>> wrote:
>
>     It doesn't address what to do about potentially conflicting maven
>     artifacts loaded by distinct asdf systems.
>
>
> Here's one approach.
>
> :managed-dependencies are specifications of  versions that should take
> precedence over versions that are in the transitive closure of some
> dependency.
>
> As each asdf system which has used maven dependencies computes its set
> of satisfying dependencies, the particular versions chosen become
> default managed-dependencies for subsequent systems. If two managed
> dependencies conflict (e.g. I include a  version 1.1 as managed
> dependency in system A, which is loaded. Subsequently system B specifies
> version 1.2 as a managed dependency, then an error is signaled.
> Many times this can be fixed by modifying the specification of the
> managed dependency to be looser, and changing the order of loaded systems.
>
> I think moving this into the planning phase is probably the right thing.
> I'm just not familiar enough with asdf's model to whip up a solution.
> Hopefully asdf's planning runs over all systems that are depended on
> before loading anything, in which case I think this will be a viable
> solution, module the case of conflicting managed dependencies, or
> dependency hell you would arrive at if you were using maven alone.

Yes, ASDF has a "plan, then execute" model of operation, so it won't
load anything until inspecting all the systems involved.