From 54d4ff269b960dd9162c3fa0653e94135c85fc5b Mon Sep 17 00:00:00 2001 From: Nikolay Chashnikov Date: Fri, 31 Jan 2025 09:50:21 +0100 Subject: [PATCH] [build scripts] add JARs from lib/modules/ subdirectory of a plugin directory to classpath when running tests JAR for a content module can be placed under lib/modules/ directory if the package prefix isn't specified for it. So we need to add such JARs to the list returned from 'createIdeClassPath', otherwise Rider tests fail if some modules in YAML plugins are extracted to separate JARs (this is needed for IJPL-176102). GitOrigin-RevId: 22f0f57a6c927a6ca261b849dc3428851bbaef07 --- .../jetbrains/intellij/build/impl/DistributionJARsBuilder.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/DistributionJARsBuilder.kt b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/DistributionJARsBuilder.kt index c26e209a5678..4925dd5345df 100644 --- a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/DistributionJARsBuilder.kt +++ b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/DistributionJARsBuilder.kt @@ -1231,8 +1231,9 @@ suspend fun createIdeClassPath(platformLayout: PlatformLayout, context: BuildCon val pluginDir = context.paths.distAllDir.resolve(PLUGINS_DIRECTORY) for (entry in contentReport.bundledPlugins.flatMap { it.second }) { val relativePath = pluginDir.relativize(entry.path) - // for plugins, our classloader load JARs only from the "lib/" directory - if (relativePath.nameCount != 3 || relativePath.getName(1).toString() != LIB_DIRECTORY) { + // for plugins, our classloaders load JARs only from the "lib/" and "lib/modules/" directories + if (!(relativePath.nameCount in 3..4 && relativePath.getName(1).toString() == LIB_DIRECTORY && + (relativePath.nameCount == 3 || relativePath.getName(2).toString() == "modules"))) { continue }