api / org.gradle.api.publish / PublicationContainer

PublicationContainer

interface PublicationContainer : ExtensiblePolymorphicDomainObjectContainer<Publication>

A PublicationContainer is responsible for creating and managing Publication instances. The set of available publication types is dependent on the application of particular plugins:

 apply plugin: 'ivy-publish' publishing.publications.create('publication-name', IvyPublication) { // Configure the ivy publication here } 
The usual way to add publications is via a configuration block. See the documentation for PublishingExtension#publications(org.gradle.api.Action) for examples of how to create and configure publications.

Since
1.3

See Also
PublicationPublishingExtension

Inherited Functions

registerBinding

abstract fun <U : T> registerBinding(type: Class<U>, implementationType: Class<out U>): Unit

Registers a binding from the specified "public" domain object type to the specified implementation type. Whenever the container is asked to create an element with the binding's public type, it will instantiate the binding's implementation type. If the implementation type has a constructor annotated with javax.inject.Inject, its arguments will be injected.

In general, registering a binding is preferable over implementing and registering a factory.

registerFactory

abstract fun <U : T> registerFactory(type: Class<U>, factory: NamedDomainObjectFactory<out U>): Unit
abstract fun <U : T> registerFactory(type: Class<U>, factory: Closure<out U>): Unit

Registers a factory for creating elements of the specified type. Typically, the specified type is an interface type.