qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Carl Trieloff <cctriel...@redhat.com>
Subject Re: Maven and artifacts....
Date Wed, 15 Nov 2006 19:23:08 GMT


I get all that.. can you provide feedback on Gordon question: "Are you 
saying it is not possible for maven to be used to build a release that 
includes any jar file that is not published to a public maven repository? "

This is key as for most projects. everything that we use might not/will 
not be in a maven repository. How is this best handled with maven?

As a side note - in Red Hat some of these types of issues are HELL for 
us, and we have created a bunch of extra stuff to work around problems 
in building distributions in a manageable way with 1000's of packages 
when maven is involved.

Insights appreciated.

Daniel Kulp wrote:
> 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 
> itself.
> 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.

View raw message