Annotation Interface ComponentBinaries


@Retention(RUNTIME) @Target(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.
 interface SampleComponent extends VariantComponentSpec {}
 interface SampleBinary extends BinarySpec {}
 class DefaultSampleBinary extends BaseBinarySpec implements SampleBinary {}

 apply plugin: MyCustomBinariesPlugin

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

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