mirror of https://github.com/sbt/sbt.git
parent
7c888aab38
commit
4d7184d8c3
|
|
@ -104,7 +104,7 @@ class MakePom(val log: Logger) {
|
||||||
{
|
{
|
||||||
val deps = depsInConfs(module, configurations)
|
val deps = depsInConfs(module, configurations)
|
||||||
makeProperties(module, deps) ++
|
makeProperties(module, deps) ++
|
||||||
makeDependencies(deps, includeTypes)
|
makeDependencies(deps, includeTypes, module.getAllExcludeRules)
|
||||||
}
|
}
|
||||||
{ makeRepositories(ivy.getSettings, allRepositories, filterRepositories) }
|
{ makeRepositories(ivy.getSettings, allRepositories, filterRepositories) }
|
||||||
</project>)
|
</project>)
|
||||||
|
|
@ -220,15 +220,15 @@ class MakePom(val log: Logger) {
|
||||||
}
|
}
|
||||||
val IgnoreTypes: Set[String] = Set(Artifact.SourceType, Artifact.DocType, Artifact.PomType)
|
val IgnoreTypes: Set[String] = Set(Artifact.SourceType, Artifact.DocType, Artifact.PomType)
|
||||||
|
|
||||||
def makeDependencies(dependencies: Seq[DependencyDescriptor], includeTypes: Set[String]): NodeSeq =
|
def makeDependencies(dependencies: Seq[DependencyDescriptor], includeTypes: Set[String], excludes: Seq[ExcludeRule]): NodeSeq =
|
||||||
if (dependencies.isEmpty)
|
if (dependencies.isEmpty)
|
||||||
NodeSeq.Empty
|
NodeSeq.Empty
|
||||||
else
|
else
|
||||||
<dependencies>
|
<dependencies>
|
||||||
{ dependencies.map(makeDependency(_, includeTypes)) }
|
{ dependencies.map(makeDependency(_, includeTypes, excludes)) }
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
def makeDependency(dependency: DependencyDescriptor, includeTypes: Set[String]): NodeSeq =
|
def makeDependency(dependency: DependencyDescriptor, includeTypes: Set[String], excludes: Seq[ExcludeRule]): NodeSeq =
|
||||||
{
|
{
|
||||||
val artifacts = dependency.getAllDependencyArtifacts
|
val artifacts = dependency.getAllDependencyArtifacts
|
||||||
val includeArtifacts = artifacts.filter(d => includeTypes(d.getType))
|
val includeArtifacts = artifacts.filter(d => includeTypes(d.getType))
|
||||||
|
|
@ -236,15 +236,15 @@ class MakePom(val log: Logger) {
|
||||||
val configs = dependency.getModuleConfigurations
|
val configs = dependency.getModuleConfigurations
|
||||||
if (configs.filterNot(Set("sources","docs")).nonEmpty) {
|
if (configs.filterNot(Set("sources","docs")).nonEmpty) {
|
||||||
val (scope, optional) = getScopeAndOptional(dependency.getModuleConfigurations)
|
val (scope, optional) = getScopeAndOptional(dependency.getModuleConfigurations)
|
||||||
makeDependencyElem(dependency, scope, optional, None, None)
|
makeDependencyElem(dependency, scope, optional, None, None, excludes)
|
||||||
} else NodeSeq.Empty
|
} else NodeSeq.Empty
|
||||||
} else if (includeArtifacts.isEmpty)
|
} else if (includeArtifacts.isEmpty)
|
||||||
NodeSeq.Empty
|
NodeSeq.Empty
|
||||||
else
|
else
|
||||||
NodeSeq.fromSeq(artifacts.flatMap(a => makeDependencyElem(dependency, a)))
|
NodeSeq.fromSeq(artifacts.flatMap(a => makeDependencyElem(dependency, a, excludes)))
|
||||||
}
|
}
|
||||||
|
|
||||||
def makeDependencyElem(dependency: DependencyDescriptor, artifact: DependencyArtifactDescriptor): Option[Elem] =
|
def makeDependencyElem(dependency: DependencyDescriptor, artifact: DependencyArtifactDescriptor, excludes: Seq[ExcludeRule]): Option[Elem] =
|
||||||
{
|
{
|
||||||
val configs = artifact.getConfigurations.toList match {
|
val configs = artifact.getConfigurations.toList match {
|
||||||
case Nil | "*" :: Nil => dependency.getModuleConfigurations
|
case Nil | "*" :: Nil => dependency.getModuleConfigurations
|
||||||
|
|
@ -258,10 +258,10 @@ class MakePom(val log: Logger) {
|
||||||
case (Some(c), Some(tpe)) if Artifact.classifierType(c) == tpe => None
|
case (Some(c), Some(tpe)) if Artifact.classifierType(c) == tpe => None
|
||||||
case _ => baseType
|
case _ => baseType
|
||||||
}
|
}
|
||||||
Some(makeDependencyElem(dependency, scope, optional, classifier, tpe))
|
Some(makeDependencyElem(dependency, scope, optional, classifier, tpe, excludes))
|
||||||
} else None
|
} else None
|
||||||
}
|
}
|
||||||
def makeDependencyElem(dependency: DependencyDescriptor, scope: Option[String], optional: Boolean, classifier: Option[String], tpe: Option[String]): Elem =
|
def makeDependencyElem(dependency: DependencyDescriptor, scope: Option[String], optional: Boolean, classifier: Option[String], tpe: Option[String], excludes: Seq[ExcludeRule]): Elem =
|
||||||
{
|
{
|
||||||
val mrid = dependency.getDependencyRevisionId
|
val mrid = dependency.getDependencyRevisionId
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
@ -272,7 +272,7 @@ class MakePom(val log: Logger) {
|
||||||
{ optionalElem(optional) }
|
{ optionalElem(optional) }
|
||||||
{ classifierElem(classifier) }
|
{ classifierElem(classifier) }
|
||||||
{ typeElem(tpe) }
|
{ typeElem(tpe) }
|
||||||
{ exclusions(dependency) }
|
{ exclusions(dependency, excludes) }
|
||||||
</dependency>
|
</dependency>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -322,9 +322,9 @@ class MakePom(val log: Logger) {
|
||||||
(scope, opt.nonEmpty)
|
(scope, opt.nonEmpty)
|
||||||
}
|
}
|
||||||
|
|
||||||
def exclusions(dependency: DependencyDescriptor): NodeSeq =
|
def exclusions(dependency: DependencyDescriptor, excludes: Seq[ExcludeRule]): NodeSeq =
|
||||||
{
|
{
|
||||||
val excl = dependency.getExcludeRules(dependency.getModuleConfigurations)
|
val excl = dependency.getExcludeRules(dependency.getModuleConfigurations) ++ excludes
|
||||||
val (warns, excls) = IvyUtil.separate(excl.map(makeExclusion))
|
val (warns, excls) = IvyUtil.separate(excl.map(makeExclusion))
|
||||||
if (warns.nonEmpty) log.warn(warns.mkString(IO.Newline))
|
if (warns.nonEmpty) log.warn(warns.mkString(IO.Newline))
|
||||||
if (excls.nonEmpty) <exclusions>{ excls }</exclusions>
|
if (excls.nonEmpty) <exclusions>{ excls }</exclusions>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue