Yes we use version ranges in our poms.
The only problem we have is speed and memory.
Everytime a build of a project is kicked off from the command line or
within eclipse maven downloads the meta data files for each dependent
and transitive dependencies. You can understand this since maven needs
to check for later versions within the ranges specified. You can stop
the downloads by running in offline mode which can help a bit.
However we've noticed maven downloads the same meta data file 39 times
in one maven build. It seems that maven does not cache these during a
build and if a pom specifies 10 artifacts and each of these artifacts
depends on artifact X then the meta data file for artifact X is
downloaded 10 times instead of just once. In offline mode the build
still takes a long time and we need memory settings of at least
-Xmx1000m to get a successful build so I suspect the local repo meta
data files are also being loaded over and over again as well.
We tried to use snapshots originally but had to abandon them since maven
3.0.3 does not support maintaining a single snaphot, it creates a new
snapshot each time, meaning you end up with many snaphot versions which
played havoc when using version ranges. Builds would fall over with out
of memory even when given as much as memory as possible on our dev
machines. So we maintained versioned artifacts ourselves. However as the
number of versions increases for a specific artifact the builds seem to
be getting exponentially slower.
This makes building in eclipse very painful (using m2e), you could
change one dependency and then have to wait many minutes before eclipse
manages to re-build specific projects.
Any ideas or suggestions?
Is the dependency management code easy to understand? I'm happy to get
my hands dirty.
--
Paul French
Kirona Solutions Ltd
Tel: 07803 122 058
E-Mail: [email protected]
Web: www.kirona.com <http://www.kirona.com>
This email and any attachments are confidential and should only be read
by those to whom they are addressed. If you are not the intended
recipient, please contact us on 01625 585511, delete the email
(including any attachment) from your computer and destroy any copies.
Any distribution or copying without our prior permission is prohibited.
Internet communications are not always secure and may be subject to
delays, non-delivery and unauthorised alterations. Therefore,
information expressed in this message is not given or endorsed by Kirona
Solutions Limited ("Kirona") unless otherwise notified by our duly
authorised representative independent of this message. No warranty is
given that this email (including any attachment) is virus free. Any
views or opinions presented are solely those of the author and do not
necessarily represent those of Kirona.
Registered addresses: Kirona Solutions Limited, Barrington House, Heyes
Lane, Alderley Edge, Cheshire. SK9 7LA Registered in England and Wales
No: 04678711