Re: Maven and ABCL
Robert Goldman <[email protected]>
| Newsgroups | gmane.editors.j.devel |
|---|---|
| Message-ID | <651e4d26-e80c-2bf6-a4f8-8b0fcdd0e16b__7496.00637141175$1491601744$gmane$org@sift.net> |
On 4/7/17 Apr 7 -4:06 PM, Alan Ruttenberg wrote: > > On Fri, Apr 7, 2017 at 4:27 PM, Alan Ruttenberg > <[email protected] <mailto:[email protected]>> 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.