This page discusses emerging ideas of "clean up" of Maven project and it's related sub-projects.
General guidelines
Whenever you "touch" a project, would be good to perform following steps:
- Make sure Plexus
AbstractLogEnabled
is not used (extended) - Make sure ancient
org.codehaus.plexus:plexus-container-default
is NOT used as dependency. In general, all shared components should be migrated to JSR330, while use of Plexus Container MAY BE still needed in UTs (due Plexus Components present in dependencies). Then use SISU Plexus Shim instead (but only in test scope):org.eclipse.sisu:org.eclipse.sisu.plexus
(currently 0.3.4, soon 1.0.0) - Make sure components in project use JSR330 annotations and not
org.codehaus.plexus:plexus-component-annotations
or EVEN WORSE, the Plexus QDox Javadoc annotations. Drop use of Plexus Componentorg.codehaus.plexus:plexus-component-metadata
plugin, and useorg.eclipse.sisu:sisu-maven-plugin
instead.
Maven SCM Cleanup
Maven SCM is bloated and contains many providers we cannot test, given they bridging for are non OSS SCMs. Proposal: keep only those SCM providers that are OSS in Maven project, and provide a clear path for SCM integrators. Propose plan:
Phase 1
- mark as `@Deprecate` all except following providers: git, svn, mercurial (maybe CVS?)
- release as-is as next minor version
Phase 2 (post release)
- drop all deprecated modules/providers
- up major version?
- make it Java 8?
Maven Wagon
Similarly, Wagon contains many providers we have no feedback whatsoever, or, we do have feedback but are dead-end (JSch/SSH).
Phase 1
- mark as `@Deprecate` all except following providers: file, http, (ssh-exe?)
- release as-is as next minor version
Phase 2 (post release)
- drop all deprecated modules/providers
- up major version?
- make it Java 8?
- Wagon specific changes, like collapse DAV into HTTP (and drop webdav-jackrabbit), probably collapse http-shared into HTTP (as lightweight is gone as well)