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)
This commit is contained in:
nik
2017-09-27 16:14:11 +03:00
parent 6e574b0adb
commit 174af9bed8
3 changed files with 6 additions and 1 deletions
@@ -297,6 +297,9 @@ idea.fatal.error.notification=disabled
}
compileModules(pluginsToPublish.collect { it.moduleJars.values() }.flatten() as List<String>)
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
@@ -43,6 +43,7 @@ class JpsCompilationData {
final Set<String> compiledModuleTests = new HashSet<>()
Logger.Factory fileLoggerFactory
boolean statisticsReported
boolean projectDependenciesResolved
JpsCompilationData(File dataStorageRoot, File buildLogFile, String categoriesWithDebugLevel, BuildMessages messages) {
this.dataStorageRoot = dataStorageRoot
@@ -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")