...
Need more information here about specific design problems with version ranges.
Artifact Identity
- Platform-specific Artifacts
- Encoding Build Options into Artifact Identity
- Alternative Versioning Schemes
- 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
- Disabling Transitivity
- Refactoring Dependency Exclusions
- Refactoring Scopes
- 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
- Providing access to POM given an Artifact instance