public void finalizeDependencies()

in plugin/src/main/java/com/uber/okbuck/core/manager/LintManager.java [74:125]


  public void finalizeDependencies() {
    Path lintCache = project.file(LINT_DEPS_CACHE).toPath();
    FileUtil.deleteQuietly(lintCache);

    if (dependencies != null && dependencies.size() > 0) {
      lintCache.toFile().mkdirs();

      new JvmBinaryRule()
          .mainClassName("")
          .excludes(LINT_BINARY_EXCLUDES)
          .defaultVisibility()
          .name(LINT_BINARY_RULE_NAME)
          .ruleType(RuleType.JAVA_BINARY.getBuckName());

      ImmutableList.Builder<Rule> rulesBuilder = new ImmutableList.Builder<>();

      Set<String> stringDependencies = BuckRuleComposer.external(dependencies);
      stringDependencies.add(":" + ANDROID_LINT_CLI_RULE_NAME);

      rulesBuilder.add(
          new JvmBinaryRule()
              .excludes(LINT_BINARY_EXCLUDES)
              .mainClassName(LINT_CLI_CLASS)
              .deps(stringDependencies)
              .ruleType(RuleType.JAVA_BINARY.getBuckName())
              .name(LINT_BINARY_RULE_NAME)
              .defaultVisibility());

      rulesBuilder.add(
          new NativePrebuilt()
              .prebuiltType(RuleType.PREBUILT_JAR.getProperties().get(0))
              .prebuilt(ANDROID_LINT_CLI_JAR)
              .ruleType(RuleType.PREBUILT_JAR.getBuckName())
              .name(ANDROID_LINT_CLI_RULE_NAME));

      rulesBuilder.add(
          new NativePrebuilt()
              .prebuiltType(RuleType.PREBUILT_JAR.getProperties().get(0))
              .prebuilt(LINT_DUMMY_JAR)
              .ruleType(RuleType.PREBUILT_JAR.getBuckName())
              .name(LINT_DUMMY_JAR));

      FileUtil.copyResourceToProject(
          "lint/" + ANDROID_LINT_CLI_JAR, new File(lintCache.toFile(), ANDROID_LINT_CLI_JAR));

      FileUtil.copyResourceToProject(
          "lint/" + LINT_DUMMY_JAR, new File(lintCache.toFile(), LINT_DUMMY_JAR));

      buckFileManager.writeToBuckFile(
          rulesBuilder.build(), project.getRootProject().file(lintBuckFile));
    }
  }