in maven-3.1.x/src/main/java/org/apache/maven/shared/transfer/artifact/install/internal/Maven31ArtifactInstaller.java [75:127]
public void install( ProjectBuildingRequest buildingRequest,
File localRepository,
Collection<org.apache.maven.artifact.Artifact> mavenArtifacts )
throws ArtifactInstallerException
{
ProjectBuildingRequest currentRequest = buildingRequest;
if ( localRepository != null )
{
currentRequest = repositoryManager.setLocalRepositoryBasedir( buildingRequest, localRepository );
}
// prepare installRequest
InstallRequest request = new InstallRequest();
// transform artifacts
for ( org.apache.maven.artifact.Artifact mavenArtifact : mavenArtifacts )
{
Artifact mainArtifact = RepositoryUtils.toArtifact( mavenArtifact );
request.addArtifact( mainArtifact );
for ( ArtifactMetadata metadata : mavenArtifact.getMetadataList() )
{
if ( metadata instanceof ProjectArtifactMetadata )
{
Artifact pomArtifact = new SubArtifact( mainArtifact, "", "pom" );
pomArtifact = pomArtifact.setFile( ( (ProjectArtifactMetadata) metadata ).getFile() );
request.addArtifact( pomArtifact );
}
else if ( // metadata instanceof SnapshotArtifactRepositoryMetadata ||
metadata instanceof ArtifactRepositoryMetadata )
{
// eaten, handled by repo system
}
else if ( metadata instanceof org.apache.maven.shared.transfer.metadata.ArtifactMetadata )
{
org.apache.maven.shared.transfer.metadata.ArtifactMetadata transferMetadata =
(org.apache.maven.shared.transfer.metadata.ArtifactMetadata) metadata;
request.addMetadata( new Maven31MetadataBridge( metadata ).setFile( transferMetadata.getFile() ) );
}
}
}
// install
try
{
repositorySystem.install( currentRequest.getRepositorySession(), request );
}
catch ( InstallationException e )
{
throw new ArtifactInstallerException( e.getMessage(), e );
}
}