qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Kulp <daniel.k...@iona.com>
Subject Maven and artifacts....
Date Wed, 15 Nov 2006 19:05:16 GMT

There seems to be a little bit of confusion around one of the major 
benefits of using maven, namely the ability to more easily integrate into 
other maven based projects, and I want to clear that up a bit.

With a traditional build system (like the current ant based build system), 
the only final artifacts that we care about are the final distributions 
that are shipped to end users.   For this, we just provide a zip/tar.gz 
that the user unpacks and uses based on the structure/scripts we provide.   
That's perfectly fine for end users.   

However, for other projects that would like to use it internally, it puts 
a large burden on them.   They need to unpack it, figure out the 
dependencies, import it into their svn repository, update build systems, 
etc...   Whenever we release a new version, that whole process repeats 

With maven, the set of artifacts that are released at release time expands 
to also include the smaller artifacts that we build.  For example: the 
qpid-client jar.    Those artifacts are published into the maven 
repository.   The associated pom.xml file describes the dependencies that 
that artifact has.   Thus, when another project declares a dependency 
on "org.apache.qpid::qpid-client", maven will automatically also handle 
the jms dependency, the mina dependency, the qpid-common dependency, 
etc...    However, that requires that all those dependencies also be 
available.   If they aren't, the whole process breaks down.

That's why Steve and I are strongly requesting to only depend on released 
artifacts.   (for testing, you can use locally installed artifacts like 
fscontext.   That would be <scope>test</scope>.)      If you don't use 
released artifacts, integration with projects like Tuscany and CXF will 
be impossible.

Anyway, the main thing I wanted to point out that with maven, a release is 
not just the end user distributions, but also the artifacts that other 
projects will depend on.

J. Daniel Kulp
Principal Engineer
P: 781-902-8727    C: 508-380-7194   F:781-902-8001

View raw message