diff --git a/core/shared/src/main/scala/coursier/maven/MavenSource.scala b/core/shared/src/main/scala/coursier/maven/MavenSource.scala index ac4e9133b..20c64dad0 100644 --- a/core/shared/src/main/scala/coursier/maven/MavenSource.scala +++ b/core/shared/src/main/scala/coursier/maven/MavenSource.scala @@ -281,7 +281,7 @@ final case class MavenSource( k -> other.extra.get(k).fold(v)(merge(v, _)) } ++ other.extra - .filterKeys(k => !a.extra.contains(k)) + .filterKeys(k => !a.extra.contains(k) && k != Artifact.optionalKey) a.copy( checksumUrls = other.checksumUrls ++ a.checksumUrls, diff --git a/tests/metadata b/tests/metadata index ac3871c92..93eccec4f 160000 --- a/tests/metadata +++ b/tests/metadata @@ -1 +1 @@ -Subproject commit ac3871c925e035157203d6d799a9a2c7c2578d67 +Subproject commit 93eccec4ffd1719586b6f1e1dddefcbea6722e7d diff --git a/tests/shared/src/test/scala/coursier/test/CentralTests.scala b/tests/shared/src/test/scala/coursier/test/CentralTests.scala index 281b60907..bf91d54ea 100644 --- a/tests/shared/src/test/scala/coursier/test/CentralTests.scala +++ b/tests/shared/src/test/scala/coursier/test/CentralTests.scala @@ -804,6 +804,23 @@ abstract class CentralTests extends TestSuite { val mainArtifactOpt = artifacts.find(_.url == mainUrl) assert(mainArtifactOpt.isEmpty) } + + * - { + if (isActualCentral) + withArtifacts(Module("com.lihaoyi", "scalatags_2.12"), "0.6.2", "jar", transitive = true, optional = false) { artifacts => + + assert(artifacts.forall(!_.isOptional)) + + val urls = artifacts.map(_.url).toSet + + val expectedUrls = Set( + "https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.0/scala-library-2.12.0.jar", + "https://repo1.maven.org/maven2/com/lihaoyi/sourcecode_2.12/0.1.3/sourcecode_2.12-0.1.3.jar", + "https://repo1.maven.org/maven2/com/lihaoyi/scalatags_2.12/0.6.2/scalatags_2.12-0.6.2.jar" + ) + assert(urls == expectedUrls) + } + } } }