Deployment

You can deploy artifacts and related metadata to a (remote) repository with the Resolver API method org.eclipse.aether.RepositorySystem.deploy(RepositorySystemSession session, DeployRequest request). The method writes or uploads them to the repository through a RepositoryConnector.

The main consumer of this API is maven-deploy-plugin.

Repository Connector

The default implementation of the repository connector is BasicRepositoryConnector. It uses a RepositoryLayout to calculate the URL. It uses a Transporter to write or upload the artifacts and metadata.

Repository Layout

The repository layout determines the location where the artifact will be written or uploaded. It uses the RepositoryLayout.getLocation(Artifact, true) or RepositoryLayout.getLocation(Metadata, true) method for this. For Maven 2 repositories, Maven2RepositoryLayoutFactory implements the logic.

Transporter

All transporter implementations have a put(...) method. Resolver calls the method during deployment. The URL protocol of the repository determines which method Resolver uses for the deployment. The standard transporters implement put(...) as follows:

URL Protocol Implementation Description
file, bundle org.eclipse.aether.transport.file.FileTransporter Writes the artifact or metadata to the file system.
http, https multiple Issues an HTTP PUT request for each artifact or metadata.
classpath org.eclipse.aether.transport.classpath.ClasspathTransporter Unsupported
minio+http, minio+https, s3+http, s3+https org.eclipse.aether.transport.minio.MinioTransporter Uploads the artifact or metadata as an object to the bucket. The configuration defines how the transporter converts the location from the RepositoryLayout into an object name and a bucket name.
* org.eclipse.aether.transport.wagon.WagonTransporter Calls StreamingWagon.putFromStream(...) or Wagon.put(...). Apache Wagon provides further details.