mirror of https://github.com/apache/maven.git
bug fixes, but still not completely fixed
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163693 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
004c6cbdf3
commit
b529deb2df
|
@ -113,15 +113,18 @@ private File getLocalRepositoryLocation( ArtifactRepository localRepository )
|
||||||
public String getVersion()
|
public String getVersion()
|
||||||
{
|
{
|
||||||
String version = artifact.getVersion();
|
String version = artifact.getVersion();
|
||||||
|
if ( timestamp != null )
|
||||||
|
{
|
||||||
if ( version != null )
|
if ( version != null )
|
||||||
{
|
{
|
||||||
version = StringUtils.replace( version, "SNAPSHOT", timestamp );
|
version = StringUtils.replace( version, "SNAPSHOT", timestamp ) + "-" + buildNumber;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
version = timestamp;
|
version = timestamp + "-" + buildNumber;
|
||||||
}
|
}
|
||||||
return version + "-" + buildNumber;
|
}
|
||||||
|
return version;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void retrieveFromRemoteRepository( ArtifactRepository remoteRepository, WagonManager wagonManager )
|
public void retrieveFromRemoteRepository( ArtifactRepository remoteRepository, WagonManager wagonManager )
|
||||||
|
|
|
@ -214,12 +214,19 @@ public ArtifactResolutionResult resolveTransitively( Set artifacts, List remoteR
|
||||||
throw new ArtifactResolutionException( "Error transitively resolving artifacts: ", e );
|
throw new ArtifactResolutionException( "Error transitively resolving artifacts: ", e );
|
||||||
}
|
}
|
||||||
|
|
||||||
for ( Iterator i = artifactResolutionResult.getArtifacts().values().iterator(); i.hasNext(); )
|
// TODO: this is unclean, but necessary as long as resolve may return a different artifact
|
||||||
|
Map collectedArtifacts = artifactResolutionResult.getArtifacts();
|
||||||
|
Map resolvedArtifacts = new HashMap( collectedArtifacts.size() );
|
||||||
|
for ( Iterator i = collectedArtifacts.keySet().iterator(); i.hasNext(); )
|
||||||
{
|
{
|
||||||
// TODO: resolve may modify artifacts, do we need to get the new list?
|
Object key = i.next();
|
||||||
resolve( (Artifact) i.next(), remoteRepositories, localRepository );
|
resolvedArtifacts.put( key, resolve( (Artifact) collectedArtifacts.get( key ), remoteRepositories,
|
||||||
|
localRepository ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
collectedArtifacts.clear();
|
||||||
|
collectedArtifacts.putAll( resolvedArtifacts );
|
||||||
|
|
||||||
return artifactResolutionResult;
|
return artifactResolutionResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -49,12 +49,17 @@ public Artifact transformForResolve( Artifact artifact, List remoteRepositories,
|
||||||
ArtifactRepository localRepository )
|
ArtifactRepository localRepository )
|
||||||
throws ArtifactMetadataRetrievalException
|
throws ArtifactMetadataRetrievalException
|
||||||
{
|
{
|
||||||
if ( isSnapshot( artifact ) && !alreadyResolved( artifact ) )
|
if ( isSnapshot( artifact ) )
|
||||||
{
|
{
|
||||||
// TODO: this mostly works, however...
|
// TODO: this mostly works, however...
|
||||||
// - poms and jars are different, so both are checked individually
|
// - poms and jars are different, so both are checked individually
|
||||||
// - when a pom is downloaded, it prevents the JAR getting downloaded because of the timestamp
|
// - when a pom is downloaded, it prevents the JAR getting downloaded because of the timestamp
|
||||||
// - need to gather first, group them all up by groupId/artifactId, then go after them
|
// - need to gather first, group them all up by groupId/artifactId, then go after them
|
||||||
|
// - alternatively, keep the timestamp when downloading (as is done here), and use the SNAPSHOT file for install
|
||||||
|
// - however, there is no mechanism to flip back and forward, and presently it keeps looking for 2.0-TIMESTAMP-0 instead as that is in the build file
|
||||||
|
|
||||||
|
// - we definitely need the manual/daily check as this is quite slow given the large number of snapshots inside m2 presently
|
||||||
|
|
||||||
/*
|
/*
|
||||||
SnapshotArtifactMetadata localMetadata;
|
SnapshotArtifactMetadata localMetadata;
|
||||||
try
|
try
|
||||||
|
@ -70,6 +75,8 @@ public Artifact transformForResolve( Artifact artifact, List remoteRepositories,
|
||||||
throw new ArtifactMetadataRetrievalException( "Error reading local metadata", e );
|
throw new ArtifactMetadataRetrievalException( "Error reading local metadata", e );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( !alreadyResolved( artifact ) )
|
||||||
|
{
|
||||||
boolean foundRemote = false;
|
boolean foundRemote = false;
|
||||||
for ( Iterator i = remoteRepositories.iterator(); i.hasNext(); )
|
for ( Iterator i = remoteRepositories.iterator(); i.hasNext(); )
|
||||||
{
|
{
|
||||||
|
@ -82,7 +89,6 @@ public Artifact transformForResolve( Artifact artifact, List remoteRepositories,
|
||||||
if ( remoteMetadata.compareTo( localMetadata ) > 0 )
|
if ( remoteMetadata.compareTo( localMetadata ) > 0 )
|
||||||
{
|
{
|
||||||
// TODO: investigate transforming this in place, in which case resolve can return void
|
// TODO: investigate transforming this in place, in which case resolve can return void
|
||||||
artifact = createArtifactCopy( artifact, remoteMetadata );
|
|
||||||
artifact.setRepository( remoteRepository );
|
artifact.setRepository( remoteRepository );
|
||||||
|
|
||||||
localMetadata = remoteMetadata;
|
localMetadata = remoteMetadata;
|
||||||
|
@ -94,8 +100,12 @@ public Artifact transformForResolve( Artifact artifact, List remoteRepositories,
|
||||||
{
|
{
|
||||||
artifact.addMetadata( localMetadata );
|
artifact.addMetadata( localMetadata );
|
||||||
}
|
}
|
||||||
*/
|
}
|
||||||
|
|
||||||
|
artifact = createArtifactCopy( artifact, localMetadata );
|
||||||
|
|
||||||
resolvedArtifactCache.add( getCacheKey( artifact ) );
|
resolvedArtifactCache.add( getCacheKey( artifact ) );
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
return artifact;
|
return artifact;
|
||||||
}
|
}
|
||||||
|
@ -140,15 +150,21 @@ public Artifact transformForDeployment( Artifact artifact, ArtifactRepository re
|
||||||
|
|
||||||
private Artifact createArtifactCopy( Artifact artifact, SnapshotArtifactMetadata metadata )
|
private Artifact createArtifactCopy( Artifact artifact, SnapshotArtifactMetadata metadata )
|
||||||
{
|
{
|
||||||
|
ArtifactRepository oldRepository = artifact.getRepository();
|
||||||
List list = artifact.getMetadataList();
|
List list = artifact.getMetadataList();
|
||||||
|
|
||||||
artifact = new DefaultArtifact( artifact.getGroupId(), artifact.getArtifactId(), metadata.getVersion(),
|
artifact = new DefaultArtifact( artifact.getGroupId(), artifact.getArtifactId(), metadata.getVersion(),
|
||||||
artifact.getScope(), artifact.getType(), artifact.getClassifier() );
|
artifact.getScope(), artifact.getType(), artifact.getClassifier() );
|
||||||
|
|
||||||
for ( Iterator i = list.iterator(); i.hasNext(); )
|
for ( Iterator i = list.iterator(); i.hasNext(); )
|
||||||
{
|
{
|
||||||
ArtifactMetadata m = (ArtifactMetadata) i.next();
|
ArtifactMetadata m = (ArtifactMetadata) i.next();
|
||||||
m.setArtifact( artifact );
|
m.setArtifact( artifact );
|
||||||
artifact.addMetadata( m );
|
artifact.addMetadata( m );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
artifact.setRepository( oldRepository );
|
||||||
|
|
||||||
return artifact;
|
return artifact;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue