in src/main/java/org/apache/maven/plugins/deploy/DeployMojo.java [214:247]
private void deployAllAtOnce() {
Map<RemoteRepository, Map<Integer, List<ProducedArtifact>>> flattenedRequests = new LinkedHashMap<>();
// flatten requests, grouping by remote repository and number of retries
for (Project reactorProject : session.getProjects()) {
State state = getState(reactorProject);
if (state == State.TO_BE_DEPLOYED) {
ArtifactDeployerRequest request = (ArtifactDeployerRequest)
session.getPluginContext(reactorProject).get(ArtifactDeployerRequest.class.getName());
flattenedRequests
.computeIfAbsent(request.getRepository(), r -> new LinkedHashMap<>())
.computeIfAbsent(request.getRetryFailedDeploymentCount(), i -> new ArrayList<>())
.addAll(request.getArtifacts());
}
}
// Re-group all requests
List<ArtifactDeployerRequest> requests = new ArrayList<>();
for (Map.Entry<RemoteRepository, Map<Integer, List<ProducedArtifact>>> entry1 : flattenedRequests.entrySet()) {
for (Map.Entry<Integer, List<ProducedArtifact>> entry2 :
entry1.getValue().entrySet()) {
requests.add(ArtifactDeployerRequest.builder()
.session(session)
.repository(entry1.getKey())
.retryFailedDeploymentCount(entry2.getKey())
.artifacts(entry2.getValue())
.build());
}
}
// Deploy
if (!requests.isEmpty()) {
requests.forEach(this::deploy);
} else {
getLog().info("No actual deploy requests");
}
}