Path: csiph.com!eeepc.pasdenom.info!news.pasdenom.info!news.dougwise.org!gegeweb.org!de-l.enfer-du-nord.net!feeder1.enfer-du-nord.net!weretis.net!feeder4.news.weretis.net!news.albasani.net!not-for-mail From: Lew Newsgroups: comp.lang.java.programmer Subject: Re: Dependency resolution in Java builds Date: Thu, 10 Feb 2011 19:08:08 -0500 Organization: albasani.net Lines: 44 Message-ID: References: <87oc6mi2nl.fsf@web.de> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: news.albasani.net BFwfd1lrySJeHZwpc5/Mv2+oOiwU72lMLTWGilChZlXMnOpexX/9aq3hA9puiR+YDhwftApVP9Lznk1iNfBL9KcMhC3Yx8IYRfRFtaAecAvqe68PuOICLs7JNumGMX3E NNTP-Posting-Date: Fri, 11 Feb 2011 00:07:30 +0000 (UTC) In-Reply-To: Cancel-Lock: sha1:dEDCWJ8D/xWRnb7voxBh3SNuXNs= User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101208 Thunderbird/3.1.7 Injection-Info: news.albasani.net; logging-data="ysW0yTLYU24lG9DyRNYdz8iDsNgCiHdhlMIk6o9kaY5G6UjB/5Bra4FEj0UxlP5TeCvYX/vn4UkxoBLoFrKOqi/nfSIMd+ZP4yDxaq6jMOi7Ag9rBXh14eRBUZV84pS3"; mail-complaints-to="abuse@albasani.net" Xref: csiph.com comp.lang.java.programmer:26017 Lew wrote: >> On a recent project with Maven builds, we had a parent build ("foomain") >> and several subsidiary modules ("foofrontend", "foologic", >> "foopersistence", ...). >> Historically different versions of the same frameworks were specified >> for >> the different modules. Yet when you pulled the dependencies into the >> "foomain" pom.xml in common the build broke. Turns out some of the >> dependencies transitively depend on the same libraries, but different >> versions also, some of which are transitive dependencies for other >> stuff, also different versions. Michal Kleczek wrote: > So it wasn't really Maven problem but dependency management problem. > From my experience Maven just makes dependency management issues explicit > and visible. I would argue it is a good thing. My experience is that Maven quietly ignores your desire to keep things in the local repository and messes up your dependencies. I would argue that invisibly making changes is NOT a good thing. Part of the problem I described is due to Maven's quiet retrieval of different transitive dependencies. If it had instead crashed the build with a message about an unresolved dependency, it would have been better. That certainly was not a good thing, and it's laid right at Maven's feet. Sometimes even a bad tool can be used effectively, if a person is aware of all the kinks and quirks and is willing to take the effort to work around them. Such tool's effectiveness under those conditions is not evidence of its goodness. Maven sucks. -- Lew Ceci n'est pas une fenĂȘtre. .___________. |###] | [###| |##/ | *\##| |#/ * | \#| |#----|----#| || | * || |o * | o| |_____|_____| |===========|