# Annotation Type CacheableTask

@Documented @Retention(RUNTIME) @Target(TYPE) public @interface CacheableTask

Attached to a task type to indicate that task output caching should be enabled by default for tasks of this type.

Only tasks that produce reproducible and relocatable output should be marked with `CacheableTask`.

Caching for individual task instances can be enabled and disabled via `TaskOutputs.cacheIf(String, Spec)` or disabled via `TaskOutputs.doNotCacheIf(String, Spec)`. Using these APIs takes precedence over the presence (or absence) of `@CacheableTask`.

Since:
  3.0
See Also:
  - `DisableCachingByDefault`