2011-07-09 03:54:59 +02:00
|
|
|
package sbt
|
|
|
|
|
|
|
|
|
|
import DependencyFilter._
|
|
|
|
|
|
|
|
|
|
final case class ConflictWarning(filter: ModuleFilter, group: ModuleID => String, level: Level.Value, failOnConflict: Boolean)
|
|
|
|
|
object ConflictWarning
|
|
|
|
|
{
|
2011-07-14 00:08:29 +02:00
|
|
|
lazy val default: ConflictWarning = ConflictWarning( moduleFilter(organization = GlobFilter("org.scala-tools.sbt") | GlobFilter("org.scala-lang")), (_: ModuleID).organization, Level.Warn, false)
|
2011-07-09 03:54:59 +02:00
|
|
|
|
|
|
|
|
def apply(config: ConflictWarning, report: UpdateReport, log: Logger)
|
|
|
|
|
{
|
|
|
|
|
val conflicts = IvyActions.groupedConflicts(config.filter, config.group)(report)
|
|
|
|
|
if(!conflicts.isEmpty)
|
|
|
|
|
log.log(config.level, "Potentially incompatible versions specified:")
|
|
|
|
|
for( (label, versions) <- conflicts )
|
|
|
|
|
log.log(config.level, " " + label + ": " + versions.mkString(", "))
|
|
|
|
|
if(config.failOnConflict && !conflicts.isEmpty)
|
|
|
|
|
error("Conflicts in " + conflicts.map(_._1).mkString )
|
|
|
|
|
}
|
|
|
|
|
}
|