From 590047bd87b795fa8e0731bc635cb9828186365d Mon Sep 17 00:00:00 2001 From: Vladimir Dolzhenko Date: Wed, 15 Jul 2026 10:04:25 +0200 Subject: [PATCH] KTIJ-39543 [kotlin] Fix lombok:config relative path calculation (cherry picked from commit 4c291c7e00efd8b17e884c9cd6bd49a56c006938) IJ-CR-213570 GitOrigin-RevId: 0826b0638bf40ea061f008c3211b8163118a8247 --- ...avenKotlinCompilerPluginProjectConfigurators.kt | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/plugins/kotlin/maven/src/org/jetbrains/kotlin/idea/maven/configuration/mavenKotlinCompilerPluginProjectConfigurators.kt b/plugins/kotlin/maven/src/org/jetbrains/kotlin/idea/maven/configuration/mavenKotlinCompilerPluginProjectConfigurators.kt index ad44163a6b4c..efa71263fbcf 100644 --- a/plugins/kotlin/maven/src/org/jetbrains/kotlin/idea/maven/configuration/mavenKotlinCompilerPluginProjectConfigurators.kt +++ b/plugins/kotlin/maven/src/org/jetbrains/kotlin/idea/maven/configuration/mavenKotlinCompilerPluginProjectConfigurators.kt @@ -26,6 +26,7 @@ import org.jetbrains.kotlin.idea.maven.createChildTag import org.jetbrains.kotlin.idea.maven.findSubTagOrCreate import org.jetbrains.kotlin.idea.util.application.executeWriteCommand import java.nio.file.Files +import kotlin.io.path.relativeTo abstract class AbstractMavenKotlinCompilerPluginProjectConfigurator: KotlinCompilerPluginProjectConfigurator { override fun isApplicable(module: Module): Boolean = @@ -180,15 +181,16 @@ class JpaMavenKotlinCompilerPluginProjectConfigurator : AbstractMavenKotlinCompi private fun Module.findLombokConfigPath(): String? { val mavenProjectsManager = MavenProjectsManager.getInstance(project) val mavenProject = mavenProjectsManager.findProject(this) ?: return null - val moduleConfig = mavenProject.directoryPath.resolve("lombok.config") - if (Files.exists(moduleConfig)) return "lombok.config" - - val parentConfig = mavenProject.parentId + val projectPath = mavenProject.directoryPath + val configName = "lombok.config" + val moduleConfig = projectPath.resolve(configName) + val lombokConfig = moduleConfig.takeIf(Files::exists) ?: mavenProject.parentId ?.let(mavenProjectsManager::findProject) ?.directoryPath - ?.resolve("lombok.config") + ?.resolve(configName) ?.takeIf(Files::exists) - return parentConfig?.toString() + val relativeTo = lombokConfig?.relativeTo(projectPath) + return relativeTo?.toString() } internal fun PomFile.addAllOpenKotlinCompilerPluginPreset(kotlinPlugin: MavenDomPlugin, kotlinCompilerPluginId: String) {