Package org.gradle.platform.base

# Annotation Interface BinaryTasks

@Retention(RUNTIME) @Target(METHOD) @Incubating public @interface BinaryTasks
Declares the tasks to build a custom `BinarySpec` binary. The following example demonstrates how to register multiple tasks for custom binary using a plugin with a `BinaryTasks` annotation.

     @Managed interface SampleComponent extends ComponentSpec {}
     @Managed interface SampleBinary extends BinarySpec {}

     apply plugin: MyCustomBinariesPlugin

     class MyCustomBinaryCreationTask extends DefaultTask {
          @TaskAction void build() {
              //building the binary
          }
     }

     class MyCustomBinariesPlugin extends RuleSource {
         @ComponentType
         void register(TypeBuilder<SampleBinary> builder) {}

         @BinaryTasks
         void createBinaryTasks(ModelMap<Task> tasks, SampleBinary binary) {
             tasks.create("${binary.name}Task1", MyCustomBinaryCreationTask)
             tasks.create("${binary.name}Task2") {
                 dependsOn "${binary.name}Task1"
             }
         }
     }