public ListenableFuture<List<BuildRuleSuccess>> executeBuild( EventBus events, Set<BuildRule> rulesToBuild) throws IOException, StepFailedException { buildContext = BuildContext.builder() .setProjectRoot(executionContext.getProjectDirectoryRoot()) .setDependencyGraph(dependencyGraph) .setStepRunner(stepRunner) .setProjectFilesystem(executionContext.getProjectFilesystem()) .setArtifactCache(artifactCache) .setJavaPackageFinder(javaPackageFinder) .setEventBus(events) .setAndroidBootclasspathForAndroidPlatformTarget( executionContext.getAndroidPlatformTargetOptional()) .setBuildDependencies(buildDependencies) .setConsole(executionContext.getConsole()) .build(); return Builder.getInstance().buildRules(rulesToBuild, buildContext); }