From Fedora Project Wiki

< Features

Revision as of 10:45, 25 November 2010 by Sochotni (talk | contribs) (Created page with '{{admon/important | Set a Page Watch| Make sure you click ''watch'' on your new page so that you are notified of changes to it by others, including the Feature Wrangler}} {{admo...')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Important.png
Set a Page Watch
Make sure you click watch on your new page so that you are notified of changes to it by others, including the Feature Wrangler
Note.png
All sections of this template are required for review by FESCo. If any sections are empty it will not be reviewed


Maven 3

Summary

Maven is Java project management, project comprehension and build system tool. It recently reached new major release. Fedora should include Maven 3 since upstream project are already beginning to use its features to build packages.

Owner

  • Email: sochotnicky@redhat.com

Current status

  • Targeted release: Fedora 15
  • Last updated: 25th November 2011
  • Percentage of completion: 75%


Detailed Description

Maven is Java project management, project comprehension and build system tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.

It recently reached new major release that has been re-worked architecturally. New version should offer developers more features, performance improvements and also easier API re-use in other tools.

Upstream developers have working backward compatibility layer with Maven 2.2.1 in place. This means that ideally maven2 package would be obsoleted by new version. This does not have to happen immediately, see Contingency plan.

Benefit to Fedora

Fedora includes a lot of Java packages, among them:

* Eclipse
* Tomcat
* Azureus
* Freemind (package review closing up)

And a lot of their dependencies are using Maven as a build system. Some packages are slowly starting to use Maven 3 features. Unless Fedora includes Maven 3 in repositories, it will be much harder to update these packages to latest version which will prevent Fedora's mission "to lead the advancement of free and open source software and content as a collaborative community".

Scope

Dependencies of Maven 3 are already in Fedora, maven package is up for review [1].

What needs to be finished is custom resolver of packages from %{_javadir} directory instead of using upstream repositories with binary packages.

Work on custom resolver happens in ssh://fedorapeople.org/~sochotni/public_git/maven-javadir-resolver.git repository on Fedorapeople for now. Due to architectural changes in Maven 3 this resolver is different from one used in Maven 2 and will need more testing. It is already possible to compile several packages with it.

Other work that needs to happen:

  • Maven 3 will be a bit more sensitive to wrong pom filenames. See bugs filed

How To Test

Building various Java packages with Maven 3 with "custom resolver". Rebuild of all Fedora packages currently using maven2 can be considered as the ultimate test.

User Experience

Commands mvn2 and mvn2-jpp will be superseded by mvn and (possibly) mvn-jpp. When maven2 package is obsoleted, compatibility symlinks can be created. No user experience change apart from cleaner output from mvn commands (upstream change).

Dependencies

A lot of java packages are being built by previous (current in Fedora) version. Not all of them have to be buildable with Maven 3 for this feature to be considered complete since current version of maven can be kept around (and is installable in parallel).

Contingency Plan

None necessary. Maven 3 is installable in parallel with maven2.

Documentation

Release Notes

Comments and Discussion