diff --git a/core/shared/src/main/scala/coursier/core/Definitions.scala b/core/shared/src/main/scala/coursier/core/Definitions.scala index eb842b623..0f5dc2d08 100644 --- a/core/shared/src/main/scala/coursier/core/Definitions.scala +++ b/core/shared/src/main/scala/coursier/core/Definitions.scala @@ -89,7 +89,6 @@ final case class Project( */ actualVersionOpt: Option[String], - // Ivy-specific // First String is configuration publications: Seq[(String, Publication)], diff --git a/core/shared/src/main/scala/coursier/maven/MavenRepository.scala b/core/shared/src/main/scala/coursier/maven/MavenRepository.scala index e01238684..6c5e4ee88 100644 --- a/core/shared/src/main/scala/coursier/maven/MavenRepository.scala +++ b/core/shared/src/main/scala/coursier/maven/MavenRepository.scala @@ -328,6 +328,7 @@ final case class MavenRepository( val prefix = s"${module.name}-${versioningValue.getOrElse(version)}" val packagingTpeMap = proj0.packagingOpt + .filter(_ != Pom.relocatedPackaging) .map { packaging => (MavenSource.typeDefaultClassifier(packaging), MavenSource.typeExtension(packaging)) -> packaging } diff --git a/core/shared/src/main/scala/coursier/maven/MavenSource.scala b/core/shared/src/main/scala/coursier/maven/MavenSource.scala index 07c3e02f3..aa790df10 100644 --- a/core/shared/src/main/scala/coursier/maven/MavenSource.scala +++ b/core/shared/src/main/scala/coursier/maven/MavenSource.scala @@ -228,13 +228,13 @@ final case class MavenSource( dependency: Dependency, project: Project, overrideClassifiers: Option[Seq[String]] - ): Seq[Artifact] = { - - if (project.publications.isEmpty) + ): Seq[Artifact] = + if (project.packagingOpt.toSeq.contains(Pom.relocatedPackaging)) + Nil + else if (project.publications.isEmpty) artifactsUnknownPublications(dependency, project, overrideClassifiers) else artifactsKnownPublications(dependency, project, overrideClassifiers) - } } object MavenSource { diff --git a/core/shared/src/main/scala/coursier/maven/Pom.scala b/core/shared/src/main/scala/coursier/maven/Pom.scala index 22f71bcc6..9c1d5fab8 100644 --- a/core/shared/src/main/scala/coursier/maven/Pom.scala +++ b/core/shared/src/main/scala/coursier/maven/Pom.scala @@ -296,7 +296,7 @@ object Pom { profiles, None, None, - packagingOpt(pom), + relocationDependencyOpt.fold(packagingOpt(pom))(_ => Some(relocatedPackaging)), None, Nil, Info( @@ -445,6 +445,8 @@ object Pom { ) } + val relocatedPackaging = s"$$relocated" + val extraAttributeSeparator = ":#@#:" val extraAttributePrefix = "+" diff --git a/tests/shared/src/test/resources/resolutions/org.apache.commons/commons-io/1.3.2 b/tests/shared/src/test/resources/resolutions/org.apache.commons/commons-io/1.3.2 new file mode 100644 index 000000000..8853c9848 --- /dev/null +++ b/tests/shared/src/test/resources/resolutions/org.apache.commons/commons-io/1.3.2 @@ -0,0 +1,2 @@ +commons-io:commons-io:1.3.2:compile +org.apache.commons:commons-io:1.3.2:compile diff --git a/tests/shared/src/test/scala/coursier/test/CentralTests.scala b/tests/shared/src/test/scala/coursier/test/CentralTests.scala index f43283819..e9ce23931 100644 --- a/tests/shared/src/test/scala/coursier/test/CentralTests.scala +++ b/tests/shared/src/test/scala/coursier/test/CentralTests.scala @@ -588,10 +588,24 @@ object CentralTests extends TestSuite { } 'relocation - { - resolutionCheck( + * - resolutionCheck( Module("bouncycastle", "bctsp-jdk14"), "138" ) + + 'ignoreRelocationJars - { + val mod = Module("org.apache.commons", "commons-io") + val ver = "1.3.2" + + val expectedUrl = "https://repo1.maven.org/maven2/commons-io/commons-io/1.3.2/commons-io-1.3.2.jar" + + * - resolutionCheck(mod, ver) + + * - withArtifacts(mod, ver, "jar", transitive = true) { artifacts => + assert(artifacts.length == 1) + assert(artifacts.head.url == expectedUrl) + } + } } }