diff --git a/ivy/src/main/scala/sbt/Ivy.scala b/ivy/src/main/scala/sbt/Ivy.scala index 68dc273d8..9a0fd6559 100644 --- a/ivy/src/main/scala/sbt/Ivy.scala +++ b/ivy/src/main/scala/sbt/Ivy.scala @@ -14,7 +14,7 @@ import CS.singleton import org.apache.ivy.{core, plugins, util, Ivy} import core.{IvyPatternHelper, LogOptions} -import core.cache.{CacheMetadataOptions, DefaultRepositoryCacheManager} +import core.cache.{CacheMetadataOptions, DefaultRepositoryCacheManager, ModuleDescriptorWriter} import core.module.descriptor.{Artifact => IArtifact, DefaultArtifact, DefaultDependencyArtifactDescriptor, MDArtifact} import core.module.descriptor.{DefaultDependencyDescriptor, DefaultModuleDescriptor, DependencyDescriptor, ModuleDescriptor, License} import core.module.descriptor.{OverrideDependencyDescriptorMediator} @@ -335,7 +335,7 @@ private object IvySbt @throws(classOf[ParseException]) override def cacheModuleDescriptor(resolver: DependencyResolver, mdRef: ResolvedResource, dd: DependencyDescriptor, moduleArtifact: IArtifact, downloader: ResourceDownloader, options: CacheMetadataOptions): ResolvedModuleRevision = { - val rmr = super.cacheModuleDescriptor(resolver, mdRef, dd, moduleArtifact, downloader, options) + val rmr = super.cacheModuleDescriptor(null, mdRef, dd, moduleArtifact, downloader, options) val mrid = moduleArtifact.getModuleRevisionId // only handle changing modules whose metadata actually changed. // Typically, the publication date in the metadata has to change to get here. @@ -353,6 +353,9 @@ private object IvySbt } rmr } + // ignore the original resolver wherever possible to avoid issues like #704 + override def saveResolvers(descriptor: ModuleDescriptor, metadataResolverName: String, artifactResolverName: String) {} + def isChanging(dd: DependencyDescriptor, requestedRevisionId: ModuleRevisionId): Boolean = dd.isChanging || requestedRevisionId.getRevision.contains("-SNAPSHOT") } diff --git a/launch/src/main/scala/xsbt/boot/Update.scala b/launch/src/main/scala/xsbt/boot/Update.scala index 0b1cbc115..22f237b07 100644 --- a/launch/src/main/scala/xsbt/boot/Update.scala +++ b/launch/src/main/scala/xsbt/boot/Update.scala @@ -292,8 +292,9 @@ final class Update(config: UpdateConfiguration) { val cacheDir = settings.getDefaultRepositoryCacheBasedir() val manager = new DefaultRepositoryCacheManager("default-cache", settings, cacheDir) { + // ignore resolvers wherever possible- not ideal, but avoids issues like #704 + override def saveResolvers(descriptor: ModuleDescriptor, metadataResolverName: String, artifactResolverName: String) {} override def findModuleInCache(dd: DependencyDescriptor, revId: ModuleRevisionId, options: CacheMetadataOptions, r: String) = { - // ignore the resolver- not ideal, but avoids thrashing. super.findModuleInCache(dd,revId,options,null) } }