BinaryTasks (Gradle API 4.4)
Date: 2017-12-06

org.gradle.platform.base

## Annotation Type BinaryTasks

-     @Retention(value=RUNTIME)
      @Target(value=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"
               }
           }
       }