launcher: don't retrieve artifacts with classifiers

This commit is contained in:
Mark Harrah 2011-06-11 20:09:15 -04:00
parent fdbeb7742b
commit 4f2490d124
1 changed files with 6 additions and 1 deletions

View File

@ -22,7 +22,8 @@ import core.sort.SortEngine
import core.settings.IvySettings
import plugins.matcher.{ExactPatternMatcher, PatternMatcher}
import plugins.resolver.{ChainResolver, FileSystemResolver, IBiblioResolver, URLResolver}
import util.{DefaultMessageLogger, Message, MessageLoggerEngine, url}
import util.{DefaultMessageLogger, filter, Message, MessageLoggerEngine, url}
import filter.Filter
import url.CredentialsStore
import BootConfiguration._
@ -189,10 +190,14 @@ final class Update(config: UpdateConfiguration)
problem.printStackTrace(logWriter)
}
}
private final class ArtifactFilter(f: IArtifact => Boolean) extends Filter {
def accept(o: Any) = o match { case a: IArtifact => f(a); case _ => false }
}
/** Retrieves resolved dependencies using the given target to determine the location to retrieve to. */
private def retrieve(eventManager: EventManager, module: ModuleDescriptor, target: UpdateTarget)
{
val retrieveOptions = new RetrieveOptions
retrieveOptions.setArtifactFilter(new ArtifactFilter(a => "jar" == a.getType && a.getExtraAttribute("classifier") == null))
val retrieveEngine = new RetrieveEngine(settings, eventManager)
val pattern =
target match