From 3be1f18c51f2e171362ac3adb5d35a2bb178066d Mon Sep 17 00:00:00 2001 From: nik Date: Tue, 23 Jan 2018 13:26:07 +0300 Subject: [PATCH] build scripts: handle module rename Properly support cases when several modules are packed into a jar which name corresponds to name of one of these modules. --- .../build/impl/DistributionJARsBuilder.groovy | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/DistributionJARsBuilder.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/DistributionJARsBuilder.groovy index f7dc42ca56fd..ef936d054e02 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/DistributionJARsBuilder.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/DistributionJARsBuilder.groovy @@ -403,11 +403,17 @@ class DistributionJARsBuilder { def resourcesIncluded = RESOURCES_INCLUDED def buildContext = buildContext checkModuleExcludes(layout.moduleExcludes) + MultiValuesMap actualModuleJars = new MultiValuesMap<>(true) + moduleJars.entrySet().each { + def modules = it.value + def jarPath = getActualModuleJarPath(it.key, modules) + actualModuleJars.putAll(jarPath, modules) + } layoutBuilder.layout(targetDirectory) { dir("lib") { - moduleJars.entrySet().each { + actualModuleJars.entrySet().each { def modules = it.value - def jarPath = getActualModuleJarPath(it.key, modules) + def jarPath = it.key jar(jarPath, true) { modules.each { moduleName -> modulePatches([moduleName]) { @@ -433,7 +439,7 @@ class DistributionJARsBuilder { } } def outputResourceJars = new MultiValuesMap() - moduleJars.values().forEach { + actualModuleJars.values().forEach { def resourcesJarName = layout.localizableResourcesJarName(it) if (resourcesJarName != null) { outputResourceJars.put(resourcesJarName, it) @@ -469,7 +475,7 @@ class DistributionJARsBuilder { } //include all module libraries from the plugin modules added to IDE classpath to layout - moduleJars.entrySet().findAll { !it.key.contains("/") }.collectMany { it.value } + actualModuleJars.entrySet().findAll { !it.key.contains("/") }.collectMany { it.value } .findAll {!layout.modulesWithExcludedModuleLibraries.contains(it)}.each { moduleName -> findModule(moduleName).dependenciesList.dependencies. findAll { it instanceof JpsLibraryDependency && it?.libraryReference?.parentReference?.resolve() instanceof JpsModule }.