This document outlines some of the steps that are being taken to ensure as much backward compatibility with tools and plugins that are currently written against Maven 2.0.x. h1. Affected Plugins h2. Maven Remote Resources Plugin * org.apache.maven.project.inheritance.ModelInheritanceAssembler#assembleModelInheritance: used to walk the POMs to find out all the license information. This functionality has been superceded by the model properties-based system for POM construction. We provide the same functionality using the model properties-based system but have just placed the component as-is in the maven-compat package to ensure the default lifecycle functions. * org.apache.maven.project.ProjectUtils: placed in the maven-compat package. * org.apache.maven.project.MissingRepositoryElementException ... used by ProjectUtils h2. Maven Help Plugin * org.apache.maven.project.path.PathTranslator: used as a parameter in the EvaluateMojo. The path translator has been replaced the model builder and PomTransformer. h1. Affected Components & Classes h2. Maven Artifact Maven Artifact will be entirely extricated from the core of Maven 3.x and replaced with Mercury, but we will make a best effort to ensure the compatibility of plugins that use Maven Artifact. There are, however, components and classes that are just so broken or conflict with standard ways of doing resolution and conflict reduction that we can't support them. h3. Supported Compatibility * org.apache.maven.artifact.deployer.ArtifactDeployer * org.apache.maven.artifact.factory.ArtifactFactory * org.apache.maven.artifact.handler.ArtifactHandler * org.apache.maven.artifact.installer.ArtifactInstaller * org.apache.maven.artifact.manager.WagonManager (1) * org.apache.maven.artifact.repository.ArtifactRepository * org.apache.maven.artifact.repository.ArtifactRepositoryPolicy * org.apache.maven.artifact.repository.ArtifactRepositoryFactory * org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout * org.apache.maven.artifact.resolver.ArtifactResolver * org.apache.maven.artifact.resolver.filter.ArtifactFilter * org.apache.maven.artifact.resolver.filter.Artifact (1) In r746285 various methods have been removed from the WagonManager which breaks the maven-project-info-reports-plugin, the maven-site-plugin and the maven-stage-plugin, e.g. due to a linkage error on getAuthentaticationInfo(). h3. Unsupported Compatibility * org.apache.maven.artifact.metadata.ArtifactMetadataSource * org.apache.maven.artifact.metadata.ResolutionGroup * org.apache.maven.artifact.repository.metadata.* * org.apache.maven.artifact.resolver.ResolutionNode * org.apache.maven.artifact.resolver.ResolutionListener * org.apache.maven.artifact.resolver.metadata.* * org.apache.maven.artifact.resolver.transform.* * org.apache.maven.artifact.resolver.versioning.* h2. Settings The settings are historically a CLI-based mechanism for setting preferences. It should have never gone beyond the core into plugins or other tools. Unfortunately we allowed the ${settings} expression in plugins and from there it made its way into components like the release manager. The release manager in turn never evolved to decouple itself from the settings and it requires a recreation of the entire Maven environment to work and grabs the RuntimeInfo info class from the settings in order to do this. Other plugins may require this and we'll have to find them them and push them toward using the Invoker where the Maven environment is taken care of and restrict/forbid the use of settings in plugins. Everything required is in the exeution request and therefore the session and that's all plugins should need. The changes made relate to MNG-3954, where the RuntimeInfo class needed to be partially rescurrected in order to make the release plugin happy. h2. Changes to the CLI * Log file support has been added i.e mvn -l log.txt clean install * Plugin registry option has not been supported in the core and it lagged around in the CLI h2. Repositories Support for non-unique SNAPSHOT deployments will be dropped. h2. Profiles Support for the profiles.xml will be dropped. h2. Maven 1.x Support for the legacy repositories has been dropped.