@Incubating public interface PublishingExtension
This new publishing mechanism will eventually replace the current mechanism of upload tasks and configurations. At this time, it is an incubating feature and under development.
The PublishingExtension is a DeferredConfigurable
model element, meaning that extension will be configured as late as possible in the build.
So any 'publishing' configuration blocks are not evaluated until either:
A 'publishing' configuration block does not need to dereference the publishing extension, and so will be evaluated late. eg:
publishing { publications { ... } repositories.maven { ... } }
Any use that accesses the publishing extension as an instance does require the publishing extension to be realised, forcing all configuration blocks to be evaluated. eg:
publishing.publications { ... } publishing.repositories.maven { ... }
Modifier and Type | Field and Description |
---|---|
static String |
NAME
The name of this extension when installed by the
PublishingPlugin ("publishing"). |
Modifier and Type | Method and Description |
---|---|
PublicationContainer |
getPublications()
The publications of the project.
|
RepositoryHandler |
getRepositories()
The container of possible repositories to publish to.
|
void |
publications(Action<? super PublicationContainer> configure)
Configures the publications of this project.
|
void |
repositories(Action<? super RepositoryHandler> configure)
Configures the container of possible repositories to publish to.
|
static final String NAME
PublishingPlugin
("publishing").RepositoryHandler getRepositories()
See repositories(org.gradle.api.Action)
for more information.
void repositories(Action<? super RepositoryHandler> configure)
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 RepositoryHandler.mavenCentral()
.
At this time, only repositories created by the ivy()
factory method have any effect. Please see IvyPublication
for information on how this can be used for publishing to Ivy repositories.
configure
- The action to configure the container of repositories with.PublicationContainer getPublications()
See publications(org.gradle.api.Action)
for more information.
void publications(Action<? super PublicationContainer> configure)
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 MavenPublication
type, you can create a publication like:
apply plugin: 'maven-publish' publishing { publications { myPublicationName(MavenPublication) { // Configure the publication here } } }
Please see IvyPublication
and MavenPublication
for more information on publishing in these specific formats.
configure
- The action or closure to configure the publications with.