api / org.gradle.api.publish / PublishingExtension

PublishingExtension

interface PublishingExtension

The configuration of how to “publish” the different components of a project.

Since
1.3

Properties

NAME

static val NAME: String

The name of this extension when installed by the org.gradle.api.publish.plugins.PublishingPlugin ({@value}).

Functions

getPublications

abstract fun getPublications(): PublicationContainer

The publications of the project.

See #publications(org.gradle.api.Action) for more information.

getRepositories

abstract fun getRepositories(): RepositoryHandler

The container of possible repositories to publish to.

See #repositories(org.gradle.api.Action) for more information.

publications

abstract fun publications(configure: Action<in PublicationContainer>): Unit

Configures the publications of this project.

The publications container defines the outgoing publications of the project. That is, the consumable representations of things produced by building the project. An example of a publication would be an Ivy Module (i.e. ivy.xml and artifacts), or Maven Project (i.e. pom.xml and artifacts).

Actual publication implementations and the ability to create them are provided by different plugins. The “publishing” plugin itself does not provide any publication types. For example, given that the 'maven-publish' plugin provides a org.gradle.api.publish.maven.MavenPublication type, you can create a publication like:

 apply plugin: 'maven-publish' publishing { publications { myPublicationName(MavenPublication) { // Configure the publication here } } } 

Please see org.gradle.api.publish.ivy.IvyPublication and org.gradle.api.publish.maven.MavenPublication for more information on publishing in these specific formats.

repositories

abstract fun repositories(configure: Action<in RepositoryHandler>): Unit

Configures the container of possible repositories to publish to.

 apply plugin: 'publishing' publishing { repositories { // Create an ivy publication destination named “releases” ivy { name "releases" url "http://my.org/ivy-repos/releases" } } } 
The repositories block is backed by a RepositoryHandler, which is the same DSL as that that is used for declaring repositories to consume dependencies from. However, certain types of repositories that can be created by the repository handler are not valid for publishing, such as org.gradle.api.artifacts.dsl.RepositoryHandler#mavenCentral().

At this time, only repositories created by the ivy() factory method have any effect. Please see org.gradle.api.publish.ivy.IvyPublication for information on how this can be used for publishing to Ivy repositories.