@Override
  public Object buildAll(@NotNull String modelName, @NotNull Project project, @NotNull ModelBuilderContext context) {
    GradleSourceSetArtifactModel sourceSetArtifactModel = new GradleSourceSetArtifactModel();

    SourceSetContainer sourceSetContainer = JavaPluginUtil.getSourceSetContainer(project);
    if (sourceSetContainer != null && !sourceSetContainer.isEmpty()) {
      Map<String, SourceSet> sourceSetArtifactMap = new HashMap<>();
      Map<String, String> sourceSetOutputArtifactMap = new HashMap<>();
      for (SourceSet sourceSet : sourceSetContainer) {
        Task task = project.getTasks().findByName(sourceSet.getJarTaskName());
        if (task instanceof AbstractArchiveTask) {
          File archivePath = getTaskArchiveFile((AbstractArchiveTask)task);
          if (archivePath != null) {
            sourceSetArtifactMap.put(archivePath.getPath(), sourceSet);
            for (File file : sourceSet.getOutput().getClassesDirs().getFiles()) {
              sourceSetOutputArtifactMap.put(file.getPath(), archivePath.getPath());
            }
            File resourcesDir = Objects.requireNonNull(sourceSet.getOutput().getResourcesDir());
            sourceSetOutputArtifactMap.put(resourcesDir.getPath(), archivePath.getPath());
          }
        }
      }
      sourceSetArtifactModel.setSourceSetArtifactMap(sourceSetArtifactMap);
      sourceSetArtifactModel.setSourceSetOutputArtifactMap(sourceSetOutputArtifactMap);
    }

    GradleSourceSetArtifactIndex.getInstance(context)
      .setSourceSetArtifactModel(project, sourceSetArtifactModel);

    return null;
  }
@Override
  public Object buildAll(@NotNull String modelName, @NotNull Project project, @NotNull ModelBuilderContext context)