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

View File

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

View File

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

View File

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

View File

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

View File

@ -19,6 +19,7 @@ final case class UpdateParams(
includeSignatures: Boolean, includeSignatures: Boolean,
sbtBootJarOverrides: Map[(Module, String), File], sbtBootJarOverrides: Map[(Module, String), File],
classpathOrder: Boolean, classpathOrder: Boolean,
missingOk: Boolean
) { ) {
def artifactFileOpt( def artifactFileOpt(
@ -38,7 +39,11 @@ final case class UpdateParams(
else else
None 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, log,
includeSignatures = params.includeSignatures, includeSignatures = params.includeSignatures,
classpathOrder = params.classpathOrder, classpathOrder = params.classpathOrder,
missingOk = params.missingOk
) )
} }