RE: Magic Questions
"Stephen McConnell" <[email protected]>
| Newsgroups | gmane.comp.jakarta.avalon.user |
|---|---|
| Message-ID | <000e01c4807d$7dd4ec70$1601a8c0@gloria> |
> -----Original Message----- > From: JACOB, ERIC [mailto:[email protected]] > Sent: 12 August 2004 16:04 > To: Avalon framework users > Subject: Magic Questions > > Hi all, > > I'm new to Avalon's world and I'm really excited about using it in my > projects, but I have a simple question. > > Why Magic instead of Maven as build system? Context: Avalon has 116 different versions projects with a stack of interdependencies between them. Maven is ok for a small number of projects. Maven is *not* ok when the number of projects you dealing with enters into three digits. Managing versioned artifact reference across projects becomes impossible without major work-around due to the absence of any centralized version management or any support for transitive dependency management. In addition, maven has some structural problems in its plugin layer which raise serious concerns when maintaining a large number of projects. > Maven is a great tool and I used it in several projects, so I'm wondering > what are the motivations behind Magic. Once upon a time two hard-core Avalon developers where working away on two separate activities, both requiring maven plugins. These two developers happened by chance to be passing comments back and forth via IM as they pursued their respective goals. As the morning unfolded, both developers hit different bugs in the underlying maven machinery (not the first time for either individual, but probably the first simultaneous occurrence of blocker problems rooted in the underlying maven plugin model). This, backed by a lack of support for centralized version management in maven, and lack of transitive dependency management set the context for the conclusion that there must be a better way. Within a matter of a week, perhaps two, two different build solutions were created to prototype the assumption that 'it could not be that hard'. Both solutions kind of build off each other as they moved forward and before the month was out, the respective development activities converged and Magic was born. The solution leveraged a reasonable solid background and experience in meta-content-management and surprised both of the core developers with massive improvement in build performance. The end result is a build system with: 1. complete support for centralized version management 2. fully supporting transitive dependencies 3. native recognition of the difference between build, test and runtime dependencies 4. full repository support consistent with the maven model 5. solidly grounded on ant as the enabling technology 6. including a dynamic ant plugin framework 7. smarter/better build strategies (artifacts and site) 8. native support for meta-data management plugins 9. combined with the ability to easily incorporate foreign projects group data into a local build solution There's no turning back! Cheers, Steve. > > Thanks, > > Eric > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected]