Gradle Maven Publish Plugin: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 50: Line 50:
<syntaxhighlight lang='groovy'>
<syntaxhighlight lang='groovy'>
publishing {
publishing {
    ...
  publications {
    myPublicationName(MavenPublication) {
      // Configure the publication here
    }
  }
}
}
</syntaxhighlight>
</syntaxhighlight>
Line 57: Line 61:


<syntaxhighlight lang='groovy'>
<syntaxhighlight lang='groovy'>
publishing {
repositories {
    ...
    maven {
        url "${url}"
        authentication {
            basic(BasicAuthentication)
        }
    }
}
}
</syntaxhighlight>
</syntaxhighlight>

Revision as of 21:52, 15 May 2018

External

Internal

Overview

"maven-publish" is an newer alternative to publishing with Maven Plugin, using "publish" tasks instead of Maven Plugin "Upload" tasks. The plugin generates Maven metadata and publishes the generated metadata and the associated artifacts to Maven repositories. The concepts behind publishing with "maven-publish", and the plugin mechanics, are described in the Concepts and Plugin Mechanics below. A step by step procedure is available under the Procedure section.

The plugin is activated with:

apply plugin: 'maven-publish'

Concepts and Plugin Mechanics

Mechanics

The plugin creates an extension of type PublishingExtension named "publishing". The extension provides a container of named publications and a container of named repositories.

Publications

The Maven Publish plugin publications are defined by the MavenPublication type.

Repositories

The Maven Publish plugin publications are defined by the MavenArtifactRepository type.

Relationship to pre-declared repositories, how can we use it?

Publishing Tasks

The plugin creates publishing tasks, based on available publications and repositories, and makes them available for use. All publishing tasks are triggered by the overarching "publish" tasks, which publishes all publications produced by the project.

Procedure

Activate the plugin:

apply plugin: 'maven-publish'

Declare the publications.

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

Declared the target repositories. The example below assumes we want to publish locally into the local Maven repository, and also into a remote Maven repository:

repositories {
    maven {
        url "${url}"
        authentication {
            basic(BasicAuthentication)
        }
    }
}

Publish:

gradle publish