| 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. |