Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Need more information here about specific design problems with version ranges.

Artifact Identity

  1. Platform-specific Artifacts
  1. Encoding Build Options into Artifact Identity
  1. Alternative Versioning Schemes
  1. Accommodating Integrator Builds

Conflict Resolution

Currently, there is only one implementation of conflict resolution in Maven. In certain cases, users may wish to use alternative methods to resolve these conflicts, maybe even opting to fail the build when a conflict is detected.

These different resolution techniques may not be mapped 1:1 with a given POM. Instead, it may make more sense to allow the user to configure his own preferred strategy, in order to make his role in the development effort simpler. One such example might be QA testers, which may opt to verify that all dependencies are convergent before proceeding with what may be an irreproducible build.

Artifact Resolution

  1. Disabling Transitivity
  1. Refactoring Dependency Exclusions
  1. Refactoring Scopes
  1. Refactoring DependencyManagement Behavior

Specification Dependencies and Provides Notation

...

Provides notation would be related to specification dependencies, but on the opposite side of the artifact relationship. For instance, Sun's JavaMail implementation would specify that it provides an implementation of the JavaMail API, as would the javamail library built by Geronimo. It would act as a reverse mapping of which API(s) are provided by a given artifact. This provides specification might need to be plural, to allow a single artifact to implement multiple APIs, thereby satisfying multiple specification dependencies from a single build.

Accommodations for Artifact Usage

  1. Providing access to POM given an Artifact instance