Skip to content

indra publishing gradle plugin

zml edited this page Apr 28, 2021 · 2 revisions

Indra's gradle plugin publishing plugin extends the configuration performed by the standard publishing plugin to be applicable for the unique needs of Gradle plugin publication.

indraPluginPublishing extension properties and methods

In addition to the standard indra extension applicable to every publication type, this plugin adds the indraPluginPublishing to allow declaring Gradle plugins in one place for both the built-in plugin descriptor generation and the plugin portal publishing features.

Method Description
plugin(relativeId, mainClass, displayName[, description[, tags]]) Declare a plugin that should have a plugin marker published
pluginIdBase(base) Set the base that the relativeId in plugin IDs should be appended to. Defaults to the project group.
website(url) Provide a website to display next to every plugin in this project.
bundleTags(tags...) Tags to apply to this project's overall plugin bundle. These can be overridden per-plugin as well.

Plugin portal publishing properties

When publishing to the Gradle Plugin Portal via GitHub Actions, the use of .s in the (un-changeable) gradle properties used by default means that it is difficult to put the API keys in secrets. To resolve this, the plugin publishing plugin will copy values from these camel-case properties to the dotted properties understood by the plugin portal plugin:

indra-provided property is equivalent to
pluginPortalApiKey gradle.publish.key
pluginPortalApiSecret gradle.publish.secret

Of course, if these camel-case properties are not set, the original properties will be preserved.