We have been happily using builder for For the Candlepin project fora few months now. As we get closer to "productization" I've been looking into a way to build the project from sources, to include all of the dependencies. Dependencies downloaded from the Maven repositories are often based at some point on checked-in binaries. An alternative approach, and the which is embraced by JPackage, is to:

A) Create Source level RPMS for all dependencies and
B)  Create local maven repo out of those jars.

This is the approach I've been pursuing, and so far, so good. In order to take advantage of this approach, I've had to modify my version of builder as well as call builder with an additional module. The change to buildr proper allows the local module to overload how the repository path is built:

http://gist.github.com/368958

This creates a module level function named build_path with the existing logic.

My overloaded version goes into a local script I am createivle calling ./localbuild.rb.

Here's a first draft.

http://gist.github.com/371298


Note that this version redefines build_path.

I used libxml to parse the maven repository mapping file, because xmlsimple was flaking out on me. I'm sure I could have debugged it further, but instead I went with what seems to be a faster and simpler approach using streaming.


This page explains the Maven version of JPP, and the rules buildr needs to follow to make use of the JPP approach.

http://fedoraproject.org/wiki/Java/JPPMavenReadme

Is there other interest in this approach?

Reply via email to