This Confluence has been LDAP enabled, if you are an ASF Committer, please use your LDAP Credentials to login. Any problems file an INFRA jira ticket please.

Skip to end of metadata
Go to start of metadata

Mercury is a serious attempt to:

  • Decouple major Maven components, making them available as stand-alone building blocks rather then having Maven as as one big monolith, not usable outside of its environment.
  • Artifact - clearly separate an Artifact from its metadata.
  • Repository - convert a repository into active component. It used to give back just pathOf(), now it accepts GAV collections and gives back either metadata or full blown Artifacts.
  • Transport - an API in development.
  • DependencyBuilder main API for dependency graph creation and conflict resolution.
  • Decouple container, so that these components are just plain pojos. This is not necessarily good as wiring components together without a container complicates using the library.
  • Introduce Jetty-based HTTP/HTTPS and WebDAV transactional transport layer.
  • Asynchronous downloads and uploads. One of the few successful usages of Java NIO in OSS.
  • Transactional operations - all-or-nothing for file sets.
  • Move integrity control into transport layer, upper level components should not care about these details.
  • Abstract out metadata cache, provide at least one implementation there.
  • Integrate these changes back to Maven 3.x to make it even better platform than it is right now

Currently Mercury can already be used for accessing repositories, and conflict resolution/classpath calculation.

  • No labels