Ivy Publication
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