mirror of https://github.com/sbt/sbt.git
Hack to avoid Ivy checking for sources/javadocs for every module
This commit is contained in:
parent
cb02e3c852
commit
9b64b75c2f
|
|
@ -21,7 +21,7 @@ import plugins.conflict.{ConflictManager, LatestConflictManager}
|
||||||
import plugins.latest.LatestRevisionStrategy
|
import plugins.latest.LatestRevisionStrategy
|
||||||
import plugins.matcher.PatternMatcher
|
import plugins.matcher.PatternMatcher
|
||||||
import plugins.parser.m2.PomModuleDescriptorParser
|
import plugins.parser.m2.PomModuleDescriptorParser
|
||||||
import plugins.resolver.ChainResolver
|
import plugins.resolver.{ChainResolver, DependencyResolver}
|
||||||
import util.{Message, MessageLogger}
|
import util.{Message, MessageLogger}
|
||||||
|
|
||||||
import scala.xml.NodeSeq
|
import scala.xml.NodeSeq
|
||||||
|
|
@ -203,9 +203,15 @@ private object IvySbt
|
||||||
val mainChain = makeChain("Default", "sbt-chain", resolvers)
|
val mainChain = makeChain("Default", "sbt-chain", resolvers)
|
||||||
settings.setDefaultResolver(mainChain.getName)
|
settings.setDefaultResolver(mainChain.getName)
|
||||||
}
|
}
|
||||||
private def resolverChain(name: String, resolvers: Seq[Resolver], localOnly: Boolean, settings: IvySettings, log: Logger): ChainResolver =
|
private def resolverChain(name: String, resolvers: Seq[Resolver], localOnly: Boolean, settings: IvySettings, log: Logger): DependencyResolver =
|
||||||
{
|
{
|
||||||
val newDefault = new ChainResolver
|
val newDefault = new ChainResolver {
|
||||||
|
// Technically, this should be applied to module configurations.
|
||||||
|
// That would require custom subclasses of all resolver types in ConvertResolver (a delegation approach does not work).
|
||||||
|
// It would be better to get proper support into Ivy.
|
||||||
|
override def locate(artifact: IArtifact) =
|
||||||
|
if(hasImplicitClassifier(artifact)) null else super.locate(artifact)
|
||||||
|
}
|
||||||
newDefault.setName(name)
|
newDefault.setName(name)
|
||||||
newDefault.setReturnFirst(true)
|
newDefault.setReturnFirst(true)
|
||||||
newDefault.setCheckmodified(false)
|
newDefault.setCheckmodified(false)
|
||||||
|
|
@ -215,6 +221,14 @@ private object IvySbt
|
||||||
}
|
}
|
||||||
newDefault
|
newDefault
|
||||||
}
|
}
|
||||||
|
/** A hack to detect if the given artifact is an automatically generated request for a classifier,
|
||||||
|
* as opposed to a user-initiated declaration. It relies on Ivy prefixing classifier with m:, while sbt uses e:.
|
||||||
|
* Clearly, it would be better to have an explicit option in Ivy to control this.*/
|
||||||
|
def hasImplicitClassifier(artifact: IArtifact): Boolean =
|
||||||
|
{
|
||||||
|
import collection.JavaConversions._
|
||||||
|
artifact.getQualifiedExtraAttributes.keys.exists(_.asInstanceOf[String] startsWith "m:")
|
||||||
|
}
|
||||||
private def setModuleConfigurations(settings: IvySettings, moduleConfigurations: Seq[ModuleConfiguration])
|
private def setModuleConfigurations(settings: IvySettings, moduleConfigurations: Seq[ModuleConfiguration])
|
||||||
{
|
{
|
||||||
val existing = settings.getResolverNames
|
val existing = settings.getResolverNames
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue