remove duplicate conflict warnings

This commit is contained in:
Mark Harrah 2012-05-06 15:11:46 -04:00
parent 1c1d7b41a5
commit 80500b5ca5
1 changed files with 8 additions and 4 deletions

View File

@ -8,7 +8,7 @@ import scala.collection.mutable.HashSet
import org.apache.ivy.{core, plugins} import org.apache.ivy.{core, plugins}
import core.module.descriptor.{DefaultExcludeRule, ExcludeRule} import core.module.descriptor.{DefaultExcludeRule, ExcludeRule}
import core.module.descriptor.{DefaultModuleDescriptor, ModuleDescriptor, OverrideDependencyDescriptorMediator} import core.module.descriptor.{DependencyDescriptor, DefaultModuleDescriptor, ModuleDescriptor, OverrideDependencyDescriptorMediator}
import core.module.id.{ArtifactId,ModuleId, ModuleRevisionId} import core.module.id.{ArtifactId,ModuleId, ModuleRevisionId}
import plugins.matcher.ExactPatternMatcher import plugins.matcher.ExactPatternMatcher
@ -59,15 +59,19 @@ private object IvyScala
private def checkDependencies(module: ModuleDescriptor, scalaBinaryVersion: String, configurations: Iterable[Configuration], log: Logger) private def checkDependencies(module: ModuleDescriptor, scalaBinaryVersion: String, configurations: Iterable[Configuration], log: Logger)
{ {
val configSet = if(configurations.isEmpty) (c: String) => true else configurationSet(configurations) val configSet = if(configurations.isEmpty) (c: String) => true else configurationSet(configurations)
for(dep <- module.getDependencies.toList) def binaryScalaWarning(dep: DependencyDescriptor): Option[String] =
{ {
val id = dep.getDependencyRevisionId val id = dep.getDependencyRevisionId
val depBinaryVersion = CrossVersion.binaryScalaVersion(id.getRevision) val depBinaryVersion = CrossVersion.binaryScalaVersion(id.getRevision)
if(id.getOrganisation == Organization && depBinaryVersion != scalaBinaryVersion && dep.getModuleConfigurations.exists(configSet)) val mismatched = id.getOrganisation == Organization && depBinaryVersion != scalaBinaryVersion && dep.getModuleConfigurations.exists(configSet)
log.warn("Binary version " + " (" + depBinaryVersion + ") for dependency " + id + if(mismatched)
Some("Binary version (" + depBinaryVersion + ") for dependency " + id +
"\n\tin " + module.getModuleRevisionId + "\n\tin " + module.getModuleRevisionId +
" differs from Scala binary version in project (" + scalaBinaryVersion + ").") " differs from Scala binary version in project (" + scalaBinaryVersion + ").")
else
None
} }
module.getDependencies.toList.flatMap(binaryScalaWarning).toSet foreach { (s: String) => log.warn(s) }
} }
private def configurationSet(configurations: Iterable[Configuration]) = configurations.map(_.toString).toSet private def configurationSet(configurations: Iterable[Configuration]) = configurations.map(_.toString).toSet