- All Superinterfaces:
- All Known Subinterfaces:
- All Known Implementing Classes:
public interface HasRuntimeDeps extends BuildRuleProvides a facility for a rule to list dependencies it'll need at runtime.
Consider the case of a Java test. The
JavaTestrule itself is just a
DefaultJavaLibraryand so only lists its immediate compile time deps as its normal first-order dependencies. However, to actually run a Java test, we need it's entire transitive dependency tree locally on disk. Since this is outside the contract of normal build dependencies (e.g. a top-down build engine may decide not to pull a dependency locally if the top-level target can be pulled from cache, and therefore won't need to be built), we need some other way to convey to the build engine that a set of rules that need to be on disk by the end of the build.
Enter this interface. While it serves an important purpose, its long-term semantics aren't entirely clear yet, so expect how we model this and how the build engine uses this to change in the future.
All Methods Instance Methods Abstract Methods Modifier and Type Method Description
Methods inherited from interface com.facebook.buck.core.build.action.BuildEngineAction
Methods inherited from interface com.facebook.buck.core.rules.BuildRule
compareTo, getBuildDeps, getBuildSteps, getBuildTarget, getFullyQualifiedName, getProjectFilesystem, getSourcePathToOutput, hasBuildSteps, isCacheable, outputFileCanBeCopied, shouldRespectInputSizeLimitForRemoteExecution, toString, updateBuildRuleResolver