private org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult resolveArtifact( ProjectBuildingRequest buildingRequest,
Artifact aetherArtifact )
throws ArtifactResolverException
{
@SuppressWarnings( "unchecked" )
List<RemoteRepository> aetherRepositories =
(List<RemoteRepository>) Invoker.invoke( RepositoryUtils.class, "toRepos", List.class,
buildingRequest.getRemoteRepositories() );
RepositorySystemSession session =
(RepositorySystemSession) Invoker.invoke( buildingRequest, "getRepositorySession" );
try
{
ArtifactDescriptorRequest descriptorRequest =
new ArtifactDescriptorRequest( aetherArtifact, aetherRepositories, null );
ArtifactDescriptorResult descriptorResult =
repositorySystem.readArtifactDescriptor( session, descriptorRequest );
ArtifactRequest request = new ArtifactRequest( descriptorResult.getArtifact(), aetherRepositories, null );
return new Maven30ArtifactResult( repositorySystem.resolveArtifact( session, request ) );
}
catch ( ArtifactDescriptorException e )
{
throw new ArtifactResolverException( e.getMessage(), e );
}
catch ( ArtifactResolutionException e )
{
throw new ArtifactResolverException( e.getMessage(), e );
}
}