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

