Merge pull request #451 from adpi2/fix-7710

[1.10.x] Exclude custom extra from pom dependency
This commit is contained in:
adpi2 2024-10-07 15:53:05 +02:00 committed by GitHub
commit ee7e17a208
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 19 additions and 11 deletions

View File

@ -78,9 +78,7 @@ object PomExtraDependencyAttributes {
item.getQualifiedExtraAttributes.asInstanceOf[java.util.Map[String, String]].asScala.toMap
}
def filterCustomExtra(item: ExtendableItem, include: Boolean): Map[String, String] =
(qualifiedExtra(item) filterKeys { k =>
qualifiedIsExtra(k) == include
}).toMap
qualifiedExtra(item).filterKeys { k => qualifiedIsExtra(k) == include }.toMap
def qualifiedIsExtra(k: String): Boolean =
k.endsWith(ScalaVersionKey) || k.endsWith(SbtVersionKey)
@ -107,17 +105,27 @@ object PomExtraDependencyAttributes {
/**
* Creates the "extra" property values for DependencyDescriptors that can be written into a maven pom
* so we don't loose the information.
* so we don't lose the information.
* @param s
* @return
*/
def writeDependencyExtra(s: Seq[DependencyDescriptor]): Seq[String] =
s.flatMap { dd =>
val revId = dd.getDependencyRevisionId
if (filterCustomExtra(revId, include = true).isEmpty)
val filteredExtra = filterCustomExtra(revId, include = true)
if (filteredExtra.isEmpty)
Nil
else
revId.encodeToString :: Nil
else {
import scala.collection.JavaConverters._
val revId0 = ModuleRevisionId.newInstance(
revId.getOrganisation,
revId.getName,
revId.getBranch,
revId.getRevision,
filteredExtra.asJava
)
revId0.encodeToString :: Nil
}
}
}

View File

@ -3,13 +3,13 @@ package sbt.internal.librarymanagement
import sbt.librarymanagement._
import sbt.librarymanagement.syntax._
import sbt.librarymanagement.ivy.UpdateOptions
import Resolver._
object ModuleResolversTest extends BaseIvySpecification {
override final val resolvers = Vector(
DefaultMavenRepository,
JavaNet2Repository,
JCenterRepository,
MavenRepository(
"JFrog OSS Releases",
"https://releases.jfrog.io/artifactory/oss-releases/"
),
Resolver.sbtPluginRepo("releases")
)