Ivy Artifact needs wildcard configuration added if no explicit ones are defined. Fixes #439.

This commit is contained in:
Mark Harrah 2013-01-16 10:26:33 -05:00
parent 9be353e247
commit b212d80ac6
1 changed files with 9 additions and 2 deletions

View File

@ -420,7 +420,7 @@ private object IvySbt
private def toIvyArtifact(moduleID: ModuleDescriptor, a: Artifact, configurations: Iterable[String]): MDArtifact =
{
val artifact = new MDArtifact(moduleID, a.name, a.`type`, a.extension, null, extra(a, false))
configurations.foreach(artifact.addConfiguration)
copyConfigurations(a, artifact.addConfiguration)
artifact
}
def getExtraAttributes(revID: ExtendableItem): Map[String,String] =
@ -563,6 +563,7 @@ private object IvySbt
import artifact.{name, classifier, `type`, extension, url}
val extraMap = extra(artifact)
val ivyArtifact = new DefaultDependencyArtifactDescriptor(dependencyDescriptor, name, `type`, extension, url.getOrElse(null), extraMap)
copyConfigurations(artifact, ivyArtifact.addConfiguration)
for(conf <- dependencyDescriptor.getModuleConfigurations)
dependencyDescriptor.addDependencyArtifact(conf, ivyArtifact)
}
@ -575,6 +576,11 @@ private object IvySbt
}
dependencyDescriptor
}
def copyConfigurations(artifact: Artifact, addConfiguration: String => Unit): Unit =
if(artifact.configurations.isEmpty)
addConfiguration("*")
else
artifact.configurations.foreach(c => addConfiguration(c.name))
def addOverrides(moduleID: DefaultModuleDescriptor, overrides: Set[ModuleID], matcher: PatternMatcher): Unit =
overrides foreach addOverride(moduleID, matcher)
@ -601,8 +607,9 @@ private object IvySbt
/** This method is used to add inline artifacts to the provided module. */
def addArtifacts(moduleID: DefaultModuleDescriptor, artifacts: Iterable[Artifact]): Unit =
for(art <- mapArtifacts(moduleID, artifacts.toSeq); c <- art.getConfigurations)
for(art <- mapArtifacts(moduleID, artifacts.toSeq); c <- art.getConfigurations if c != "*")
moduleID.addArtifact(c, art)
def addConfigurations(mod: DefaultModuleDescriptor, configurations: Iterable[Configuration]): Unit =
configurations.foreach(config => mod.addConfiguration(toIvyConfiguration(config)))