in maven-artifact-transfer-api/src/main/java/org/apache/maven/shared/transfer/project/deploy/internal/DefaultProjectDeployer.java [65:126]
public void deploy( ProjectBuildingRequest buildingRequest, ProjectDeployerRequest projectDeployerRequest,
ArtifactRepository artifactRepository )
throws NoFileAssignedException, IllegalArgumentException, ArtifactDeployerException
{
validateParameters( buildingRequest, projectDeployerRequest, artifactRepository );
Artifact artifact = projectDeployerRequest.getProject().getArtifact();
String packaging = projectDeployerRequest.getProject().getPackaging();
File pomFile = projectDeployerRequest.getProject().getFile();
List<Artifact> attachedArtifacts = projectDeployerRequest.getProject().getAttachedArtifacts();
// Deploy the POM
boolean isPomArtifact = "pom".equals( packaging );
if ( isPomArtifact )
{
artifact.setFile( pomFile );
}
else
{
ProjectArtifactMetadata metadata = new ProjectArtifactMetadata( artifact, pomFile );
artifact.addMetadata( metadata );
}
// What consequence does this have?
// artifact.setRelease( true );
artifact.setRepository( artifactRepository );
int retryFailedDeploymentCount = projectDeployerRequest.getRetryFailedDeploymentCount();
List<Artifact> deployableArtifacts = new ArrayList<>();
if ( isPomArtifact )
{
deployableArtifacts.add( artifact );
}
else
{
File file = artifact.getFile();
if ( file != null && file.isFile() )
{
deployableArtifacts.add( artifact );
}
else if ( !attachedArtifacts.isEmpty() )
{
// TODO: Reconsider this exception? Better Exception type?
throw new NoFileAssignedException( "The packaging plugin for this project did not assign "
+ "a main file to the project but it has attachments. Change packaging to 'pom'." );
}
else
{
// TODO: Reconsider this exception? Better Exception type?
throw new NoFileAssignedException( "The packaging for this project did not assign "
+ "a file to the build artifact" );
}
}
deployableArtifacts.addAll( attachedArtifacts );
deploy( buildingRequest, deployableArtifacts, artifactRepository, retryFailedDeploymentCount );
}