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"
         }
     }
 }