diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java index 3d7b7c89e5c0..510dd949ff2a 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java @@ -2,7 +2,10 @@ package org.jetbrains.jps.incremental; import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.util.*; +import com.intellij.openapi.util.LowMemoryWatcher; +import com.intellij.openapi.util.Pair; +import com.intellij.openapi.util.UserDataHolder; +import com.intellij.openapi.util.UserDataHolderBase; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.Function; @@ -1302,7 +1305,20 @@ public class IncProjectBuilder { } else if (buildResult == ModuleLevelBuilder.ExitCode.CHUNK_REBUILD_REQUIRED) { if (!rebuildFromScratchRequested && !JavaBuilderUtil.isForcedRecompilationAllJavaModules(context)) { - LOG.info("Builder " + builder.getPresentableName() + " requested rebuild of module chunk " + chunk.getName()); + String infoMessage = "Builder \"" + builder.getPresentableName() + "\" requested rebuild of module chunk \"" + chunk.getName() + "\""; + LOG.info(infoMessage); + + BuildMessage.Kind kind = BuildMessage.Kind.JPS_INFO; + final CompileScope scope = context.getScope(); + for (ModuleBuildTarget target : chunk.getTargets()) { + if (!scope.isWholeTargetAffected(target)) { + infoMessage += ".\nConsider building whole project or rebuilding the module."; + kind = BuildMessage.Kind.INFO; + break; + } + } + context.processMessage(new CompilerMessage("", kind, infoMessage)); + // allow rebuild from scratch only once per chunk rebuildFromScratchRequested = true; try {