From cee6474d2436319c23b8ad137b24ab9eda27ea02 Mon Sep 17 00:00:00 2001 From: Dmitrii Naumenko Date: Mon, 27 Nov 2023 14:57:45 +0100 Subject: [PATCH] fix condition in Resolvers.mavenCompatibleBaseOpt (use artifactPatterns instead of ivyPatterns) (#484) Before the change Resolvers.mavenCompatibleBaseOpt always returned Some value because `baseIvyPattern == baseArtifactPattern` always was `true`` --- .../src/main/scala/lmcoursier/internal/Resolvers.scala | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/lm-coursier/src/main/scala/lmcoursier/internal/Resolvers.scala b/modules/lm-coursier/src/main/scala/lmcoursier/internal/Resolvers.scala index 0cbea970a..51baf44ca 100644 --- a/modules/lm-coursier/src/main/scala/lmcoursier/internal/Resolvers.scala +++ b/modules/lm-coursier/src/main/scala/lmcoursier/internal/Resolvers.scala @@ -17,8 +17,12 @@ object Resolvers { private def mavenCompatibleBaseOpt(patterns: Patterns): Option[String] = if (patterns.isMavenCompatible) { - val baseIvyPattern = patterns.ivyPatterns.head.takeWhile(c => c != '[' && c != '(') - val baseArtifactPattern = patterns.ivyPatterns.head.takeWhile(c => c != '[' && c != '(') + //input : /Users/user/custom/repo/[organisation]/[module](_[scalaVersion])(_[sbtVersion])/[revision]/[artifact]-[revision](-[classifier]).[ext] + //output : /Users/user/custom/repo/ + def basePattern(pattern: String): String = pattern.takeWhile(c => c != '[' && c != '(') + + val baseIvyPattern = basePattern(patterns.ivyPatterns.head) + val baseArtifactPattern = basePattern(patterns.artifactPatterns.head) if (baseIvyPattern == baseArtifactPattern) Some(baseIvyPattern)