api / org.gradle.api.artifacts.maven / MavenResolver

MavenResolver

interface MavenResolver : ArtifactRepository, PomFilterContainer

An ArtifactRepository which can be used to publish artifacts to Maven repositories.

Inherited Properties

DEFAULT_ARTIFACT_POM_NAME

static val DEFAULT_ARTIFACT_POM_NAME: String

Functions

beforeDeployment

abstract fun beforeDeployment(action: Action<in MavenDeployment>): Unit

Adds an action to be executed immediately before a deployment to this resolver. The action is executed after all artifacts have been build, including generation of the POM. The action can modify the set of artifacts to be deployed.

abstract fun beforeDeployment(action: Closure<Any>): Unit

Adds a closure to be executed immediately before a deployment to this resolver. The closure is passed a as a parameter. The closure is executed after all artifacts have been build, including generation of the POM. The closure can modify the set of artifacts to be deployed.

getSettings

abstract fun getSettings(): Any

Returns a Maven settings object. This can be used for example to figure out where the local repository is located. This property is populated on demand.

Inherited Functions

addFilter

abstract fun addFilter(name: String, publishFilter: PublishFilter): MavenPom

If you want to deploy more than one artifact you need to define filters to select each of those artifacts. The method returns a POM object associated with this filter, that allows you to customize the POM generation for the artifact selected by the filter.

abstract fun addFilter(name: String, filter: Closure<Any>): MavenPom

Adds a publish filter.

filter

abstract fun filter(name: String): PublishFilter

Returns a filter added with #addFilter(String, org.gradle.api.artifacts.maven.PublishFilter).

abstract fun filter(filter: Closure<Any>): Unit

Sets the default publish filter.

getActivePomFilters

abstract fun getActivePomFilters(): MutableIterable<PomFilter>

getFilter

abstract fun getFilter(): PublishFilter

Returns the default filter being used. .

getName

abstract fun getName(): String

Returns the name for this repository. A name must be unique amongst a repository set. A default name is provided for the repository if none is provided.

The name is used in logging output and error reporting to point to information related to this repository.

getPom

abstract fun getPom(): MavenPom

Returns the POM property of the custom filter. The POM property can be used to customize the POM generation. By default the properties of such a POM object are all null. Null means that Gradle will use default values for generating the Maven POM. Those default values are derived from the deployable artifact and from the project type (e.g. java, war, ...). If you explicitly set a POM property, Gradle will use those instead.

pom

abstract fun pom(name: String): MavenPom

Returns the POM associated with a filter added with #addFilter(String, org.gradle.api.artifacts.maven.PublishFilter).

abstract fun pom(name: String, configureClosure: Closure<Any>): MavenPom

Configures a POM by a closure. The closure statements are delegated to the POM object associated with the given name.

abstract fun pom(configureClosure: Closure<Any>): MavenPom

Configures the default POM by a closure. The closure statements are delegated to the default POM.

abstract fun pom(name: String, configureAction: Action<in MavenPom>): MavenPom

Configures a POM by an action. The action is executed against the POM object associated with the given name.

abstract fun pom(configureAction: Action<in MavenPom>): MavenPom

Configures the default POM by an action.

setFilter

abstract fun setFilter(defaultFilter: PublishFilter): Unit

Sets the default filter to be used. This filter is active if no custom filters have been added (see #addFilter(String, org.gradle.api.artifacts.maven.PublishFilter)). If at least one custom filter has been added the default filter is not used any longer.

The default for this property is PublishFilter#ALWAYS_ACCEPT. If there is only one artifact you are fine with this filter. If there is more than one artifact, deployment will lead to an exception, if you don't specify a filter that selects the artifact to deploy. If you want to deploy more than one artifact you have to use the (see #addFilter(String, org.gradle.api.artifacts.maven.PublishFilter) method.

setName

abstract fun setName(name: String): Unit

Sets the name for this repository. If this repository is to be added to an org.gradle.api.artifacts.ArtifactRepositoryContainer (including org.gradle.api.artifacts.dsl.RepositoryHandler), its name cannot be changed after it has been added to the container.

setPom

abstract fun setPom(defaultPom: MavenPom): Unit

Sets the default POM to be used. This POM is active if no custom filters have been added (see #addFilter(String, org.gradle.api.artifacts.maven.PublishFilter)). If at least one custom filter has been added the default POM is not used any longer.

Usually you don't need to set this property as the default value provides you a POM object you might use for configuration. By default the properties of such a POM object are all null. If they are null, Gradle will use default values for generating the Maven POM. Those default values are derived from the deployable artifact and from the project type (e.g. java, war, ...). If you explicitly set a POM property, Gradle will use this instead.

Inheritors

MavenDeployer

interface MavenDeployer : MavenResolver

A resolver that can only be used for uploading artifacts to a Maven repository. If you use this resolver for getting dependencies from a Maven repository, an exception is thrown. This resolver support all aspects of Maven deployment, including snapshot deployment and metadata.xml manipulation.

You have to specify at least one repository. Otherwise, if there is only one artifact, usually there is not more to do. If there is more than one artifact you have to decide what to do about this, as a Maven POM can only deal with one artifact. There are two strategies. If you want to deploy only one artifact you have to specify a filter to select this artifact. If you want to deploy more than one artifact, you have to specify filters which select each artifact. Associated with each filter is a separate configurable POM.

You can create an instance of this type via the org.gradle.api.tasks.Upload#getRepositories() container