private boolean startBuild() {
      String outputFilePath = artifact.getOutputFilePath();
      if (StringUtil.isEmpty(outputFilePath)) {
        context.processMessage(new CompilerMessage(getBuilderName(), BuildMessage.Kind.ERROR,
                                                   JpsBuildBundle.message("build.message.cannot.build.0.artifact.output.path.is.not.specified", artifact.getName())));
        return false;
      }
      final ArtifactSorter sorter = new ArtifactSorter(pd.getModel());
      final Map<JpsArtifact, JpsArtifact> selfIncludingNameMap = sorter.getArtifactToSelfIncludingNameMap();
      final JpsArtifact selfIncluding = selfIncludingNameMap.get(artifact);
      if (selfIncluding != null) {
        context.processMessage(new CompilerMessage(getBuilderName(), BuildMessage.Kind.ERROR,
                                                   JpsBuildBundle.message("build.message.cannot.build.0.artifact.it.includes.itself", artifact.getName(), selfIncluding.getName(), selfIncluding.equals(artifact) ? 0 : 1)));
        return false;
      }

      String messageText = JpsBuildBundle.message("progress.message.building.artifact.0", artifact.getName());
      context.processMessage(new ProgressMessage(messageText));
      LOG.debug(messageText);

      return true;
    }
private boolean startBuild()