diff --git a/ivy/src/main/scala/sbt/IvyRetrieve.scala b/ivy/src/main/scala/sbt/IvyRetrieve.scala index e9dba98ee..b3bf04563 100644 --- a/ivy/src/main/scala/sbt/IvyRetrieve.scala +++ b/ivy/src/main/scala/sbt/IvyRetrieve.scala @@ -107,9 +107,12 @@ object IvyRetrieve { }) val isDefault = Option(dep.getDescriptor) map { _.isDefault } val configurations = dep.getConfigurations(confReport.getConfiguration).toArray.toList - val licenses: Seq[(String, URL)] = mdOpt match { - case Some(md) => md.getLicenses.toArray.toVector collect { case lic: IvyLicense => (lic.getName, new URL(lic.getUrl)) } - case _ => Nil + val licenses: Seq[(String, Option[String])] = mdOpt match { + case Some(md) => md.getLicenses.toArray.toVector collect { + case lic: IvyLicense => + (lic.getName, Option(lic.getUrl)) + } + case _ => Nil } val callers = dep.getCallers(confReport.getConfiguration).toArray.toVector map { toCaller } val (resolved, missing) = artifacts(moduleId, confReport getDownloadReports revId) diff --git a/ivy/src/main/scala/sbt/UpdateReport.scala b/ivy/src/main/scala/sbt/UpdateReport.scala index f8c2804d5..41ea4fd80 100644 --- a/ivy/src/main/scala/sbt/UpdateReport.scala +++ b/ivy/src/main/scala/sbt/UpdateReport.scala @@ -105,7 +105,7 @@ final class ModuleReport( val isDefault: Option[Boolean], val branch: Option[String], val configurations: Seq[String], - val licenses: Seq[(String, URL)], + val licenses: Seq[(String, Option[String])], val callers: Seq[Caller]) { private[this] lazy val arts: Seq[String] = artifacts.map(_.toString) ++ missingArtifacts.map(art => "(MISSING) " + art) @@ -162,7 +162,7 @@ final class ModuleReport( isDefault: Option[Boolean] = isDefault, branch: Option[String] = branch, configurations: Seq[String] = configurations, - licenses: Seq[(String, URL)] = licenses, + licenses: Seq[(String, Option[String])] = licenses, callers: Seq[Caller] = callers): ModuleReport = new ModuleReport(module, artifacts, missingArtifacts, status, publicationDate, resolver, artifactResolver, evicted, evictedData, evictedReason, problem, homepage, extraAttributes, isDefault, branch, configurations, licenses, callers) diff --git a/main/actions/src/main/scala/sbt/CacheIvy.scala b/main/actions/src/main/scala/sbt/CacheIvy.scala index 47cf6b494..3b74251d4 100644 --- a/main/actions/src/main/scala/sbt/CacheIvy.scala +++ b/main/actions/src/main/scala/sbt/CacheIvy.scala @@ -66,7 +66,7 @@ object CacheIvy { implicit def confReportFormat(implicit m: Format[String], mr: Format[Seq[ModuleReport]], mdr: Format[Seq[ModuleDetailReport]], mi: Format[Seq[ModuleID]]): Format[ConfigurationReport] = wrap[ConfigurationReport, (String, Seq[ModuleReport], Seq[ModuleDetailReport], Seq[ModuleID])](r => (r.configuration, r.modules, r.details, r.evicted), { case (c, m, d, v) => new ConfigurationReport(c, m, d, v) }) implicit def moduleReportFormat(implicit cf: Format[Seq[Caller]], ff: Format[File]): Format[ModuleReport] = { - wrap[ModuleReport, (ModuleID, Seq[(Artifact, File)], Seq[Artifact], Option[String], Option[Long], Option[String], Option[String], Boolean, Option[String], Option[String], Option[String], Option[String], Map[String, String], Option[Boolean], Option[String], Seq[String], Seq[(String, URL)], Seq[Caller])]( + wrap[ModuleReport, (ModuleID, Seq[(Artifact, File)], Seq[Artifact], Option[String], Option[Long], Option[String], Option[String], Boolean, Option[String], Option[String], Option[String], Option[String], Map[String, String], Option[Boolean], Option[String], Seq[String], Seq[(String, Option[String])], Seq[Caller])]( m => (m.module, m.artifacts, m.missingArtifacts, m.status, m.publicationDate map { _.getTime }, m.resolver, m.artifactResolver, m.evicted, m.evictedData, m.evictedReason, m.problem, m.homepage, m.extraAttributes, m.isDefault, m.branch, m.configurations, m.licenses, m.callers), { case (m, as, ms, s, pd, r, a, e, ed, er, p, h, ea, d, b, cs, ls, ks) => new ModuleReport(m, as, ms, s, pd map { new ju.Date(_) }, r, a, e, ed, er, p, h, ea, d, b, cs, ls, ks) }) }