org.gradle.platform.base

## Annotation Type ComponentBinaries

-     @Retention(value=RUNTIME)
      @Target(value=METHOD)
      @Incubating
      public @interface ComponentBinaries

  Declares the binaries that should be built for a custom `ComponentSpec` type. The following example demonstrates how to register a binary for a custom component type using a plugin with a `ComponentBinaries` annotation. Furthermore the plugin registers 'DefaultSampleBinary' as implementation for `BinarySpec`.

       import org.gradle.model.*
       import org.gradle.model.collection.*

       interface SampleComponent extends ComponentSpec {}
       interface SampleBinary extends BinarySpec {}
       class DefaultSampleBinary extends BaseBinarySpec implements SampleBinary {}

       apply plugin: MyCustomBinariesPlugin

       class MyCustomBinariesPlugin implements Plugin {
           void apply(final Project project) {}

           @RuleSource
           static class Rules {

                @BinaryType
                void register(BinaryTypeBuilder builder) {
                   builder.defaultImplementation(DefaultSampleBinary)
                }

                @ComponentBinaries
                void createBinariesForSampleLibrary(CollectionBuilder binaries, SampleComponent component) {
                   binaries.create("${component.name}Binary", SampleBinary)
                }
           }
       }