diff --git a/ivy/Ivy.scala b/ivy/Ivy.scala index 8f8829328..bd1adc399 100644 --- a/ivy/Ivy.scala +++ b/ivy/Ivy.scala @@ -3,7 +3,6 @@ */ package sbt -import Artifact.{defaultExtension, defaultType} import Resolver.PluginPattern import java.io.File diff --git a/ivy/IvyInterface.scala b/ivy/IvyInterface.scala index 3157a6b4b..3c80bc087 100644 --- a/ivy/IvyInterface.scala +++ b/ivy/IvyInterface.scala @@ -364,17 +364,17 @@ final case class Artifact(name: String, `type`: String, extension: String, class object Artifact { - def apply(name: String): Artifact = Artifact(name, defaultType, defaultExtension, None, Nil, None) - def apply(name: String, extra: Map[String,String]): Artifact = Artifact(name, defaultType, defaultExtension, None, Nil, None, extra) - def apply(name: String, classifier: String): Artifact = Artifact(name, defaultType, defaultExtension, Some(classifier), Nil, None) + def apply(name: String): Artifact = Artifact(name, DefaultType, DefaultExtension, None, Nil, None) + def apply(name: String, extra: Map[String,String]): Artifact = Artifact(name, DefaultType, DefaultExtension, None, Nil, None, extra) + def apply(name: String, classifier: String): Artifact = Artifact(name, DefaultType, DefaultExtension, Some(classifier), Nil, None) def apply(name: String, `type`: String, extension: String): Artifact = Artifact(name, `type`, extension, None, Nil, None) def apply(name: String, `type`: String, extension: String, classifier: String): Artifact = Artifact(name, `type`, extension, Some(classifier), Nil, None) - def apply(name: String, url: URL): Artifact =Artifact(name, extract(url, defaultType), extract(url, defaultExtension), None, Nil, Some(url)) + def apply(name: String, url: URL): Artifact =Artifact(name, extract(url, DefaultType), extract(url, DefaultExtension), None, Nil, Some(url)) def apply(name: String, `type`: String, extension: String, classifier: Option[String], configurations: Iterable[Configuration], url: Option[URL]): Artifact = Artifact(name, `type`, extension, classifier, configurations, url, Map.empty) - val defaultExtension = "jar" - val defaultType = "jar" + val DefaultExtension = "jar" + val DefaultType = "jar" def sources(name: String) = classified(name, SourceClassifier) def javadoc(name: String) = classified(name, DocClassifier) @@ -382,6 +382,8 @@ object Artifact val DocClassifier = "javadoc" val SourceClassifier = "sources" + val DocType = "doc" + val SourceType = "src" val PomType = "pom" def extract(url: URL, default: String): String = extract(url.toString, default) @@ -398,7 +400,7 @@ object Artifact val name = file.getName val i = name.lastIndexOf('.') val base = if(i >= 0) name.substring(0, i) else name - Artifact(base, extract(name, defaultType), extract(name, defaultExtension), None, Nil, Some(file.toURI.toURL)) + Artifact(base, extract(name, DefaultType), extract(name, DefaultExtension), None, Nil, Some(file.toURI.toURL)) } def artifactName(scalaVersion: String, module: ModuleID, artifact: Artifact): String = { @@ -410,11 +412,11 @@ object Artifact def cross(enable: Boolean, scalaVersion: String): String = if(enable) "_" + scalaVersion else "" val classifierConfMap = Map(SourceClassifier -> Sources, DocClassifier -> Docs) - val classifierTypeMap = Map(SourceClassifier -> "src", DocClassifier -> "doc") + val classifierTypeMap = Map(SourceClassifier -> SourceType, DocClassifier -> DocType) def classifierConf(classifier: String): Configuration = classifierConfMap.getOrElse(classifier, Optional) - def classifierType(classifier: String): String = classifierTypeMap.getOrElse(classifier, defaultType) + def classifierType(classifier: String): String = classifierTypeMap.getOrElse(classifier, DefaultType) def classified(name: String, classifier: String): Artifact = - Artifact(name, classifierType(classifier), defaultExtension, Some(classifier), classifierConf(classifier) :: Nil, None) + Artifact(name, classifierType(classifier), DefaultExtension, Some(classifier), classifierConf(classifier) :: Nil, None) } final case class ModuleConfiguration(organization: String, name: String, revision: String, resolver: Resolver) object ModuleConfiguration diff --git a/ivy/MakePom.scala b/ivy/MakePom.scala index 063b44e5b..64145e066 100644 --- a/ivy/MakePom.scala +++ b/ivy/MakePom.scala @@ -88,10 +88,14 @@ class MakePom case Array() => "pom" case Array(x) => x.getType case xs => - val types = xs.map(_.getType) - val notpom = types.toList - "pom" - if(notpom.isEmpty) "pom" else if(notpom contains "jar") "jar" else notpom.head + val types = xs.map(_.getType).toList.filterNot(IgnoreTypes) + types match { + case Nil => Artifact.PomType + case xs if xs.contains(Artifact.DefaultType) => Artifact.DefaultType + case x :: xs => x + } } + val IgnoreTypes: Set[String] = Set(Artifact.SourceType, Artifact.DocType, Artifact.PomType) def makeDependencies(module: ModuleDescriptor, configurations: Option[Iterable[Configuration]]): NodeSeq = {