Mark artifacts as optional if missingOk is true

This commit is contained in:
Alexandre Archambault 2020-05-15 12:16:24 +02:00
parent 55a0e79239
commit aefefb4634
7 changed files with 26 additions and 4 deletions

View File

@ -178,6 +178,7 @@ class CoursierDependencyResolution(conf: CoursierConfiguration) extends Dependen
cache = cache0,
parallel = conf.parallelDownloads,
classpathOrder = conf.classpathOrder,
missingOk = conf.missingOk
)
val sbtBootJarOverrides = SbtBootJars(
@ -208,6 +209,7 @@ class CoursierDependencyResolution(conf: CoursierConfiguration) extends Dependen
includeSignatures = false,
sbtBootJarOverrides = sbtBootJarOverrides,
classpathOrder = conf.classpathOrder,
missingOk = conf.missingOk
)
val e = for {

View File

@ -15,4 +15,5 @@ final case class ArtifactsParams(
cache: FileCache[Task],
parallel: Int,
classpathOrder: Boolean,
missingOk: Boolean
)

View File

@ -51,6 +51,15 @@ object ArtifactsRun {
else
Nil
}
.addTransformArtifacts { artifacts =>
if (params.missingOk)
artifacts.map {
case (dependency, publication, artifact) =>
(dependency, publication, artifact.withOptional(true))
}
else
artifacts
}
.withCache(
params
.cache

View File

@ -62,7 +62,7 @@ final case class ResolutionParams(
cache = cleanCache
),
cleanCache,
sbtClassifiers
missingOk
)
}

View File

@ -142,6 +142,7 @@ private[internal] object SbtUpdateReport {
keepPomArtifact: Boolean = false,
includeSignatures: Boolean = false,
classpathOrder: Boolean,
missingOk: Boolean
): Vector[ModuleReport] = {
val deps = classifiersOpt match {
@ -156,8 +157,9 @@ private[internal] object SbtUpdateReport {
deps.map {
case (d, p, a) =>
val d0 = d.withAttributes(d.attributes.withClassifier(p.classifier))
val f = map.get((d0, p, a)).flatten
(d, p, a, f) // not d0
val a0 = if (missingOk) a.withOptional(true) else a
val f = map.get((d0, p, a0)).flatten
(d, p, a0, f) // not d0
}
case None =>
deps.map {
@ -301,6 +303,7 @@ private[internal] object SbtUpdateReport {
keepPomArtifact: Boolean = false,
includeSignatures: Boolean = false,
classpathOrder: Boolean,
missingOk: Boolean
): UpdateReport = {
val configReports = configs.map {
@ -324,6 +327,7 @@ private[internal] object SbtUpdateReport {
keepPomArtifact = keepPomArtifact,
includeSignatures = includeSignatures,
classpathOrder = classpathOrder,
missingOk = missingOk
)
val reports0 = subRes.rootDependencies match {

View File

@ -19,6 +19,7 @@ final case class UpdateParams(
includeSignatures: Boolean,
sbtBootJarOverrides: Map[(Module, String), File],
classpathOrder: Boolean,
missingOk: Boolean
) {
def artifactFileOpt(
@ -38,7 +39,11 @@ final case class UpdateParams(
else
None
fromBootJars.orElse(artifacts.get(artifact))
val artifact0 =
if (missingOk) artifact.withOptional(true)
else artifact
fromBootJars.orElse(artifacts.get(artifact0))
}
}

View File

@ -96,6 +96,7 @@ object UpdateRun {
log,
includeSignatures = params.includeSignatures,
classpathOrder = params.classpathOrder,
missingOk = params.missingOk
)
}