From 5a1c6c36a76e3d0c38eff1da7dd309c8b0bd88fb Mon Sep 17 00:00:00 2001 From: krrish175-byte Date: Sat, 10 Jan 2026 18:41:03 +0530 Subject: [PATCH] Fix: correctly detect scala version from plugin executions --- .../maven/MojoImplementation.scala | 7 +++- src/test/resources/issue_84/pom.xml | 41 +++++++++++++++++++ .../maven/MavenConfigGenerationTest.scala | 8 ++++ 3 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 src/test/resources/issue_84/pom.xml diff --git a/src/main/scala/bloop/integrations/maven/MojoImplementation.scala b/src/main/scala/bloop/integrations/maven/MojoImplementation.scala index 13876a3..d17ce0b 100644 --- a/src/main/scala/bloop/integrations/maven/MojoImplementation.scala +++ b/src/main/scala/bloop/integrations/maven/MojoImplementation.scala @@ -42,7 +42,12 @@ object MojoImplementation { val (newConfig, moduleType) = Option(buildPlugins.get(ScalaMavenGroupArtifact)) match { case None => (None, BloopMojo.ModuleType.JAVA) case Some(scalaMavenPlugin) => - (Some(scalaMavenPlugin.getConfiguration.asInstanceOf[Xpp3Dom]), BloopMojo.ModuleType.SCALA) + val pluginConfig = Option(scalaMavenPlugin.getConfiguration).map(_.asInstanceOf[Xpp3Dom]) + val executionConfigs = scalaMavenPlugin.getExecutions.asScala + .flatMap(e => Option(e.getConfiguration).map(_.asInstanceOf[Xpp3Dom])) + val combinedConfig = (executionConfigs ++ pluginConfig) + .reduceOption((dominant, recessive) => Xpp3Dom.mergeXpp3Dom(dominant, recessive)) + (combinedConfig, BloopMojo.ModuleType.SCALA) } val javaCompilerArgs: List[String] = Option(buildPlugins.get(JavaMavenGroupArtifact)) match { diff --git a/src/test/resources/issue_84/pom.xml b/src/test/resources/issue_84/pom.xml new file mode 100644 index 0000000..b6fa0c5 --- /dev/null +++ b/src/test/resources/issue_84/pom.xml @@ -0,0 +1,41 @@ + + 4.0.0 + + bloop.test + issue_84 + 1.0-SNAPSHOT + jar + + issue-84-test + + + + org.scala-lang + scala3-library_3 + 3.2.2 + + + + + + + net.alchim31.maven + scala-maven-plugin + 4.9.1 + + + + compile + testCompile + + + 3.4.2 + 3.4.2 + + + + + + + diff --git a/src/test/scala/bloop/integrations/maven/MavenConfigGenerationTest.scala b/src/test/scala/bloop/integrations/maven/MavenConfigGenerationTest.scala index e1dfd61..eeeeaa6 100644 --- a/src/test/scala/bloop/integrations/maven/MavenConfigGenerationTest.scala +++ b/src/test/scala/bloop/integrations/maven/MavenConfigGenerationTest.scala @@ -467,4 +467,12 @@ class MavenConfigGenerationTest extends BaseConfigSuite { } } + @Test + def issue84() = { + check("issue_84/pom.xml") { (configFile, projectName, subprojects) => + assert(subprojects.isEmpty) + assert(configFile.project.`scala`.isDefined, "Scala config should be defined") + assertEquals("3.4.2", configFile.project.`scala`.get.version) + } + } }