IvyPublication

An IvyPublication is the representation/configuration of how Gradle should publish something in Ivy format, to an Ivy repository. You directly add a named Ivy publication the project's publishing.publications container by providing IvyPublication as the type.

publishing {
  publications {
    myPublicationName(IvyPublication) {
      // Configure the publication here
    }
  }
}

The Ivy module identifying attributes of the publication are mapped as follows:

  • module - project.name
  • organisation - project.group
  • revision - project.version
  • status - project.status

For certain common use cases, it's often sufficient to specify the component to publish, using (from. The published component is used to determine which artifacts to publish, and which configurations and dependencies should be listed in the generated ivy descriptor file.

You can add configurations to the generated ivy descriptor file, by supplying a Closure to the configurations method.

To add additional artifacts to the set published, use the artifact and artifact methods. You can also completely replace the set of published artifacts using setArtifacts. Together, these methods give you full control over the artifacts to be published.

In addition, IvyModuleDescriptorSpec provides configuration methods to customize licenses, authors, and the description to be published in the Ivy module descriptor.

For any other tweaks to the publication, it is possible to modify the generated Ivy descriptor file prior to publication. This is done using the withXml method, normally via a Closure passed to the descriptor method.

Example of publishing a java component with an added source jar and custom module description
plugins {
    id 'java'
    id 'ivy-publish'
}

task sourceJar(type: Jar) {
  from sourceSets.main.allJava
}

publishing {
  publications {
    myPublication(IvyPublication) {
      from components.java
      artifact(sourceJar) {
        type "source"
        extension "src.jar"
        conf "runtime"
      }
      descriptor {
        license {
          name = "Custom License"
        }
        author {
          name = "Custom Name"
        }
        description {
          text = "Custom Description"
        }
      }
    }
  }
}

Since

1.3

Functions

Link copied to clipboard
abstract fun artifact(source: Any): IvyArtifact
Creates a custom IvyArtifact to be included in the publication.
abstract fun artifact(source: Any, config: Action<in IvyArtifact>): IvyArtifact
Creates an IvyArtifact to be included in the publication, which is configured by the associated action.
Link copied to clipboard
Defines some IvyConfigurations that should be included in the published ivy module descriptor file.
Link copied to clipboard
abstract fun descriptor(configure: Action<in IvyModuleDescriptorSpec>)
Configures the descriptor that will be published.
Link copied to clipboard
abstract fun from(component: SoftwareComponent)
Provides the software component that should be published.
Link copied to clipboard
The complete set of artifacts for this publication.
Link copied to clipboard
Returns the complete set of configurations for this publication.
Link copied to clipboard
The module descriptor that will be published.
Link copied to clipboard
abstract fun getModule(): String
Returns the module for this publication.
Link copied to clipboard
abstract fun getName(): String
Link copied to clipboard
abstract fun getOrganisation(): String
Returns the organisation for this publication.
Link copied to clipboard
abstract fun getRevision(): String
Returns the revision for this publication.
Link copied to clipboard
abstract fun setArtifacts(sources: Iterable<out Any>)
Sets the artifacts for this publication.
Link copied to clipboard
abstract fun setModule(module: String)
Sets the module for this publication.
Link copied to clipboard
abstract fun setOrganisation(organisation: String)
Sets the organisation for this publication.
Link copied to clipboard
abstract fun setRevision(revision: String)
Sets the revision for this publication.
Link copied to clipboard
Silences all the compatibility warnings for the Ivy publication.
Link copied to clipboard
abstract fun suppressIvyMetadataWarningsFor(variantName: String)
Silences the compatibility warnings for the Ivy publication for the specified variant.
Link copied to clipboard
abstract fun versionMapping(configureAction: Action<in VersionMappingStrategy>)
Configures the version mapping strategy.
Link copied to clipboard
abstract fun withBuildIdentifier()
Link copied to clipboard
abstract fun withoutBuildIdentifier()