[fedora-java] Using Maven in Fedora Koji

Mike Bonnet mikeb at redhat.com
Thu Oct 1 18:07:05 UTC 2009


As part of my work developing and maintaining Koji, I've been looking at 
ways to better support Java builds.  Maven is emerging as the defacto 
standard build tool for Java projects, but the design of Maven makes it 
difficult to use in the context of rpmbuild.  In order to provide the 
same reproduceability and auditability for Java builds that we have with 
rpm builds, without the complexity of the Maven-in-rpmbuild system we 
use now, I've been working on supporting Maven natively in Koji.

The code has been committed to the "mead" branch of the upstream Koji 
git repository, and testing has been very successful.  I'm planning on 
taking the proposal to FESCo soon, but I wanted to get some feedback 
from the people most likely to be affect by this, the active Java 
packagers/maintainers, first.  I've written up a wiki page describing 
how the system works and some of the advantages of it here:

http://fedoraproject.org/wiki/KojiMavenSupport

Note that deploying this in Fedora would not force any packages to 
change their build process.  If you are happy with your current build 
process, you're free to continue using it.  This is an alternative build 
process available to those packages that would benefit from it, 
primarily Java packages that build with Maven.  The existing 
rpmbuild-based process and the new Maven-based process will be fully 
interoperable.

I'd appreciate any thoughts or feedback you have on this before we take 
it to FESCo and the Fedora Packaging Committee.  Though this has the 
potential to increase the number of Java packages in Fedora 
significantly, it could also make packaging Java apps for Fedora 
significantly easier.

Note that this also has implications for building and packaging JBoss in 
Fedora.  A number of the JBoss projects build with Maven, and more of 
them are moving in that direction upstream, but getting them to build 
within rpmbuild has been difficult and labor-intensive.  Koji Maven 
support was designed with this in mind, and will enable us to build 
JBoss in a repeatable, trackable way without requiring changes to the 
upstream build process, and will make packaging the build output in rpms 
dramatically simpler.  Getting JBoss packaged in Fedora in a fully 
supportable way is a compelling reason for deploying this in the Fedora 
build environment.

Please let me know if you have any questions, or need more detail about 
any aspect of the proposal.

Thanks,
Mike




More information about the java-devel mailing list