From 174af9bed86380fe5f2fa0eaacc16ec354418095 Mon Sep 17 00:00:00 2001 From: nik Date: Wed, 27 Sep 2017 16:13:34 +0300 Subject: [PATCH] build scripts: resolve all repository libraries when building a product There may be some libraries which are added to plugin distributions but plugin modules don't depend on them (e.g. JUnit5, IDEA-179182) --- .../org/jetbrains/intellij/build/impl/BuildTasksImpl.groovy | 3 +++ .../jetbrains/intellij/build/impl/JpsCompilationData.groovy | 1 + .../jetbrains/intellij/build/impl/JpsCompilationRunner.groovy | 3 ++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/BuildTasksImpl.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/BuildTasksImpl.groovy index 590c5e4c5ab9..75004f7864e2 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/BuildTasksImpl.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/BuildTasksImpl.groovy @@ -297,6 +297,9 @@ idea.fatal.error.notification=disabled } compileModules(pluginsToPublish.collect { it.moduleJars.values() }.flatten() as List) distributionJARsBuilder.pluginsToPublish.addAll(pluginsToPublish) + + //we need this to ensure that all libraries which may be used in the distribution are resolved, even if product modules don't depend on them (e.g. JUnit5) + CompilationTasks.create(buildContext).resolveProjectDependencies() } @Override diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/JpsCompilationData.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/JpsCompilationData.groovy index cc7fd51aa322..fd33f50f4433 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/JpsCompilationData.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/JpsCompilationData.groovy @@ -43,6 +43,7 @@ class JpsCompilationData { final Set compiledModuleTests = new HashSet<>() Logger.Factory fileLoggerFactory boolean statisticsReported + boolean projectDependenciesResolved JpsCompilationData(File dataStorageRoot, File buildLogFile, String categoriesWithDebugLevel, BuildMessages messages) { this.dataStorageRoot = dataStorageRoot diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/JpsCompilationRunner.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/JpsCompilationRunner.groovy index 41627addabdc..1f177a57917b 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/JpsCompilationRunner.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/JpsCompilationRunner.groovy @@ -131,8 +131,9 @@ class JpsCompilationRunner { } } } - if (resolveProjectDependencies) { + if (resolveProjectDependencies && !compilationData.projectDependenciesResolved) { scopes.add(CmdlineRemoteProto.Message.ControllerMessage.ParametersMessage.TargetTypeBuildScope.newBuilder().setTypeId("project-dependencies-resolving").setForceBuild(false).setAllTargets(true).build()) + compilationData.projectDependenciesResolved = true } context.messages.info("Starting build; incremental: $context.options.incrementalCompilation, cache directory: $compilationData.dataStorageRoot.absolutePath")