in buildSrc/src/main/java/com/uber/okbuck/composer/jvm/JvmLibraryRuleComposer.java [25:93]
public static ImmutableList<Rule> compose(
JvmTarget target, RuleType ruleType, boolean integrationTestsEnabled) {
List<String> deps =
ImmutableList.<String>builder()
.addAll(external(target.getExternalDeps(SourceSetType.MAIN)))
.addAll(targets(target.getTargetDeps(SourceSetType.MAIN)))
.build();
Set<String> aptDeps =
ImmutableSet.<String>builder()
.addAll(externalApt(target.getExternalAptDeps(SourceSetType.MAIN)))
.addAll(targetsApt(target.getTargetAptDeps(SourceSetType.MAIN)))
.build();
Set<String> providedDeps =
ImmutableSet.<String>builder()
.addAll(external(target.getExternalProvidedDeps(SourceSetType.MAIN)))
.addAll(targets(target.getTargetProvidedDeps(SourceSetType.MAIN)))
.build();
Set<String> exportedDeps =
ImmutableSet.<String>builder()
.addAll(external(target.getExternalExportedDeps(SourceSetType.MAIN)))
.addAll(targets(target.getTargetExportedDeps(SourceSetType.MAIN)))
.build();
ImmutableList.Builder<String> testTargetsBuilder = ImmutableList.builder();
if (!target.getTest().getSources().isEmpty()) {
testTargetsBuilder.add(":" + test(target));
}
if (integrationTestsEnabled && !target.getIntegrationTest().getSources().isEmpty()) {
testTargetsBuilder.add(":" + integrationTest(target));
}
ImmutableList.Builder<Rule> rulesBuilder = new ImmutableList.Builder<>();
rulesBuilder.add(
new JvmRule()
.srcs(target.getMain().getSources())
.exts(ruleType.getProperties())
.apPlugins(getApPlugins(target.getApPlugins()))
.aptDeps(aptDeps)
.providedDeps(providedDeps)
.exportedDeps(exportedDeps)
.resources(target.getMain().getJavaResources())
.sourceCompatibility(target.getSourceCompatibility())
.targetCompatibility(target.getTargetCompatibility())
.mavenCoords(target.getMavenCoords())
.testTargets(testTargetsBuilder.build())
.options(target.getMain().getCustomOptions())
.ruleType(ruleType.getBuckName())
.defaultVisibility()
.deps(deps)
.name(src(target))
.extraBuckOpts(target.getExtraOpts(ruleType)));
if (target.hasApplication()) {
rulesBuilder.add(
new JvmBinaryRule()
.mainClassName(target.getMainClass())
.excludes(target.getExcludes())
.defaultVisibility()
.name(bin(target))
.deps(ImmutableSet.of(":" + src(target)))
.ruleType(RuleType.JAVA_BINARY.getBuckName())
.extraBuckOpts(target.getExtraOpts(RuleType.JAVA_BINARY)));
}
return rulesBuilder.build();
}