Maven Update
This page hosts information about the next major Maven update (Maven 2.2.1 and Maven 3) in Fedora. If you wish to help out with it, please feel free to contact Deepak or Alexander for pointers.
Maven 2.2.1
The spec file for 2.2.1 will be written from scratch, as the current 2.0.x spec file has gotten convoluted over time, and is no longer maintainable. Another major change for the maven 2.2.1 set will be that plugins will not longer come from the maven2 srpm. Instead, each plugin will have its own rpm.
NOTE: To avoid breaking rawhide, we have a specified target for this task, the build instruction is "make build TARGET=dist-f14-maven221", and scratch build instruction is "koji build --scratch dist-f14-maven221 <src.rpm>".
NOTE: Non core plugins (i.e. not needed to build maven itself) are not listed here but on a different page. See the list here.
Progress
Because maven updates (especially this one) are such a major undertaking, issues need to be tackled in stages. The current plan is as follows:
Item | Owner | Status |
---|---|---|
Build bootstrap rpm with a single version (wherever possible) of each dependency | Deepak Bhole | Done |
Write script that can run through ~/.m2/ to gather the latest version, and link the rest to simulate a repo | Deepak Bhole | Done |
Write skeleton spec file that uses the above simulated repo to build maven (only %prep and %build) | Deepak Bhole | Done |
Prepare preliminary list of packages needed, what is in rawhide, and what subsequent steps are needed | Deepak Bhole | Done |
Update patches for depmap/jpp repo support | Deepak Bhole | Done |
Port existing patches | Deepak Bhole | Done |
Update patchset for 2.2.1 | Deepak Bhole | Done |
Update rpm spec file to make bootstrap version installable and usable for builds | Deepak Bhole | Done |
Post usable bootstrap rpm publicly | Deepak Bhole | Done [1] |
From the simulated repo, remove jars for which packages exist in rawhide (at >= required version), and try to build with those packages installed | Deepak Bhole | Done |
Finalize list of work that needs to be done in terms of package updates and new packages | Deepak Bhole | Done |
Build bootstrap version in rawhide | Deepak Bhole | Done |
Build the bootstrap maven in rawhide tag in koji, (in separate tag if needed) | Distributed | Done |
Create/Build all the dependencies (updates and new packages) | Distributed | Done |
Finally, build maven in non-bootstrap mode | Deepak Bhole | Done |
Dependency Info
Preliminary build has yielded some data about updates/new packages. This list should not be considered 100% accurate yet as some items that are being considered "OK" due to higher version, might cause errors. And vice-versa, items with lower versions may work perfectly fine.
Items with a strikethrough were needed with upstream build, but are no longer needed.
Jars pulled | Package | Required Version | Version in Rawhide | Status (For now) |
---|---|---|---|---|
asm:asm:3.1 |
objectweb-asm | 3.1 | 3.1 | OK |
backport-util-concurrent:backport-util-concurrent:3.1 | backport-util-concurrent | 3.1 | 3.1 | OK |
bsh:bsh:1.3.0 | bsh | 1.3.0 | 1.3.0 | OK |
classworlds:classworlds:1.1 | classworlds | 1.1 | 1.1 | OK |
com:jcraft:jsch:0.1.38 | jsch | 0.1.38 | 0.1.41 | OK |
commons-cli:commons-cli:1.2 | jakarta-commons-cli | 1.2 | 1.1 | OK |
commons-codec:commons-codec:1.2 | jakarta-commons-codec | 1.2 | 1.4 | OK |
commons-collections:commons-collections:3.2 | jakarta-commons-collections | 3.2 | 3.2.1 | OK |
commons-httpclient:commons-httpclient:3.1 | jakarta-commons-httpclient | 3.1 | 3.1 | OK |
commons-io:commons-io:1.4 | jakarta-commons-io | 1.4 | 1.4 | OK |
commons-lang:commons-lang:2.3 | jakarta-commons-lang | 2.3 | 2.3 | OK |
commons-logging:commons-logging:1.0.4 | jakarta-commons-logging | 1.0.4 | 1.0.4 | OK |
easymock:easymock:1.2_Java1.3 | easymock | 1.2 | 1.2 | OK |
edu/umd/cs/mtc:multithreadedtc-jdk14:1.01 | multithreadedtc | 1.01 | 1.01 | OK |
jdom:jdom:1.0 | jdom | 1.0 | 1.0 | OK |
junit:junit:3.8.1 | junit | 3.8.1 | 3.8.2 | OK |
nekohtml:nekohtml:1.9.6.2 |
nekohtml | 1.9.6.2 | 0.9.5 | OK |
org/apache:ant:ant:1.7.1 |
ant | 1.7.1 | 1.7.1 | OK |
org/apache:apache-jar-resource-bundle:1.4 | apache-resource-bundles | 1.4 | 1.4 | OK |
|
||||
org/apache/maven:apache-maven:2.2.1 | maven2 | 2.2.1 | 2.0.8 | Needs update |
org/apache/maven/doxia:doxia-core:1.0 |
maven-doxia | 1.1 | 1.1.2 | OK |
org/apache/maven:enforcer:enforcer-api:1.0-beta-1 |
maven-enforcer | 1.0-beta-1 | 1.0-beta-2 | OK |
org/mortbay:jetty:jetty:6.1.5 |
jetty | 6.1.5 | 6.1.21 | OK |
org/apache/maven:maven-archiver:2.4 | maven-archiver | 2.4 | 2.4 | OK |
org/apache/maven:maven-artifact:2.2.1 |
maven2 | 2.2.1 | 2.0.8 | Needs update |
org/apache/maven/plugins:maven-assembly-plugin:2.2-beta-4 | maven-assembly-plugin | 2.2-beta-4 | 2.2-beta-4 | OK |
org/apache/maven/plugins:maven-clean-plugin:2.1.1 | maven-clean-plugin | 2.1.1 | 2.4.1 | OK |
org/apache/maven/plugins:maven-compiler-plugin:2.0.2 | maven-compiler-plugin | 2.0.2 | 2.0.2 | OK |
org/apache/maven/plugins:maven-install-plugin:2.1 | maven-install-plugin | 2.3 | 2.3 | OK |
org/apache/maven/plugins:maven-jar-plugin:2.1 | maven-jar-plugin | 2.1 | 2.3 | OK |
org/apache/maven/plugins:maven-pmd-plugin:2.4 | maven-pmd-plugin | 2.4 | 2.5 | OK |
org/apache/maven/plugins:maven-release-plugin:2.0 | maven-release | 2.0 | 2.0 | OK |
org/apache/maven/plugins:maven-resources-plugin:2.2 | maven-resources-plugin | 2.2 | 2.2 | OK |
org/apache/maven/plugins:maven-shade-plugin:1.2 | maven-shade-plugin | 1.2 | 1.2.2 | OK |
org/apache/maven/plugins:maven-site-plugin:2.1 | maven-site-plugin | 2.1 | 2.1 | OK |
org/apache/maven/plugins:maven-surefire-plugin:2.3 | maven-surefire-plugin | 2.3 | 2.3 | OK |
org/apache/maven:reporting:maven-reporting-api:2.2.1 | maven-shared | 2.2.1 | 2.0.8 | OK |
org/apache/maven/scm:maven-scm-api:1.0-beta-3 |
maven-scm | 1.0-beta-3 | 1.2 | OK |
org/apache/maven/shared:file-management:1.1 |
maven-shared | 8 | 14 | OK |
org/apache/maven:surefire:surefire-api:2.3 |
maven-surefire | 2.3 | 2.3 | OK |
org/apache/maven:surefire:surefire-junit:2.3 |
maven-surefire-provider-junit | 2.3 | 2.3 | OK |
org/apache/maven:wagon:wagon-file:1.0-beta-6 |
maven-wagon | 1.0-beta-6 | 1.0-beta-2 | OK |
org/codehaus/modello:modello-core:1.0.1 |
modello | 1.0.1 | 1.0-alpha-15 | OK |
org/codehaus/mojo:buildnumber-maven-plugin:1.0-beta-4 | buildnumber-maven-plugin | 1.0-beta-4 | None | OK |
org/codehaus/plexus:plexus-active-collections:1.0-beta-2 | plexus-active-collections | 1.0-beta-2 | None | OK |
org/codehaus/plexus:plexus-ant-factory:1.0-alpha-2.1 | plexus-ant-factory | 1.0-alpha-2.1 | 1.0-alpha-2.1 | OK |
org/codehaus/plexus:plexus-archiver:1.0-alpha-12 | plexus-archiver | 1.0-alpha-12 | 1.0-alpha-12 | OK |
org/codehaus/plexus:plexus-bsh-factory:1.0-alpha-7 | plexus-bsh-factory | 1.0-alpha-7 | 1.0-alpha-7 | OK |
org/codehaus/plexus:plexus-classworlds:1.2-alpha-9 | plexus-classworlds | 1.2-alpha-9 | 1.2-alpha-9 | OK |
org/codehaus/plexus:plexus-compiler-api:1.5.3 |
plexus-compiler | 1.5.3 | 1.5.2 | OK |
org/codehaus/plexus:plexus-component-api:1.0-alpha-15 | plexus-components | 1.0-alpha-15 | None | OK |
org/codehaus/plexus:plexus-container-default:1.0-alpha-30 | plexus-containers-container-default | 1.0-alpha-30 | 1.0-alpha-34 | OK |
org/codehaus/plexus:plexus-container-default:1.0-alpha-9-stable-1 | plexus-container-default | 1.0-alpha-9-stable-1 | 1.0-alpha-8 | OK |
org/codehaus/plexus:plexus-i18n:1.0-beta-7 | plexus-i18n | 1.0-beta-7 | 1,0-beta-10 | OK |
org/codehaus/plexus:plexus-interactivity-api:1.0-alpha-6 | plexus-interactivity | 1.0-alpha-6 | 1.0-alpha-5 | OK |
org/codehaus/plexus:plexus-interpolation:1.11 | plexus-interpolation | 1.11 | 1.13 | OK |
org/codehaus/plexus:plexus-io:1.0-alpha-4 | plexus-io | 1.0-alpha-4 | 1.0-alpha-5 | OK |
org/codehaus/plexus:plexus-resources:1.0-alpha-4 | plexus-resources | 1.0-alpha-4 | 1.0-alpha-4 | OK |
org/codehaus/plexus:plexus-utils:1.5.12 | plexus-utils | 1.5.12 | 2.0.5 | OK |
org/codehaus/plexus:plexus-velocity:1.1.7 | plexus-velocity | 1.1.7 | 1.1.7 | OK |
org/sonatype/plexus:plexus-build-api:0.0.6 | plexus-build-api | 0.0.6 | 0.0.6 | OK |
org/sonatype/plexus:plexus-cipher:1.5 | plexus-cipher | 1.5 | 1.5 | OK |
org/sonatype/plexus:plexus-sec-dispatcher:1.3 | plexus-sec-dispatcher | 1.4 | 1.4 | OK |
org/sonatype/forge:forge-parent:5 | forge-parent | 5 | None | OK |
org/sonatype/spice:spice-parent:15 | spice-parent | 15 | None | OK |
oro:oro:2.0.8 | jakarta-oro | 2.0.8 | 2.0.8 | OK |
regexp:regexp:1.3 | regexp | 1.3 | 1.5 | OK |
org/slf4j:jcl-over-slf4j:1.5.6 |
slf4j | 1.5.6 | 1.5.6 | OK |
org/apache/velocity:velocity:1.5 |
velocity | 1.5 | 1.5 | OK |
Maven 3
Maven 3 has been packaged. Package name: maven
Ideas/Improvements
- Every package installing maven poms/depmaps should have "Provides: groupId:artifactId". Maven could then be updated with another resolver that would ask packagekit for given groupId:artifactId when resolving dependencies during compile/install phase. This should work similar to how bash currently suggest installing package if it fails to find command.