use the correct resolved version for a dependency even if it was previously downloaded.

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@168129 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Brett Leslie Porter 2005-05-04 14:03:03 +00:00
parent 49eb3eb8f0
commit d3c02d1760
2 changed files with 16 additions and 3 deletions

View File

@ -13,6 +13,8 @@
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.HashMap;
import java.util.Map;
public class ArtifactDownloader
{
@ -36,7 +38,7 @@ public class ArtifactDownloader
private static final String REPO_URL = "http://repo1.maven.org/maven2";
private Set downloadedArtifacts = new HashSet();
private Map downloadedArtifacts = new HashMap();
public ArtifactDownloader( Repository localRepository, List remoteRepositories )
throws Exception
@ -72,7 +74,8 @@ public void downloadDependencies( Collection dependencies )
{
Dependency dep = (Dependency) j.next();
if ( !downloadedArtifacts.contains( dep ) )
String dependencyConflictId = dep.getDependencyConflictId();
if ( !downloadedArtifacts.containsKey( dependencyConflictId ) )
{
File destinationFile = localRepository.getArtifactFile( dep );
// The directory structure for this project may
@ -97,7 +100,12 @@ public void downloadDependencies( Collection dependencies )
throw new DownloadFailedException( "Failed to download " + dep );
}
downloadedArtifacts.add( dep );
downloadedArtifacts.put( dependencyConflictId, dep );
}
else
{
Dependency d = (Dependency) downloadedArtifacts.get( dependencyConflictId );
dep.setResolvedVersion( d.getResolvedVersion() );
}
}
}

View File

@ -250,6 +250,11 @@ public String getConflictId()
return getGroupId() + ":" + getArtifactId() + ":" + getType();
}
public String getDependencyConflictId()
{
return getGroupId() + ":" + getArtifactId() + ":" + getType() + ":" + getVersion();
}
public void setResolvedVersion( String resolvedVersion )
{
this.resolvedVersion = resolvedVersion;