Configuring com.palantir.docker tag at Execution Phase: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 18: Line 18:
Note that the version cannot be declared here if the backing library is to be configured as a buildSrc dependency. It will be declared in buildSrc build.gradle.
Note that the version cannot be declared here if the backing library is to be configured as a buildSrc dependency. It will be declared in buildSrc build.gradle.


Identify the location in the plugin repository: https://plugins.gradle.org/m2/. Go to https://plugins.gradle.org/m2/com/palantir/docker/, then to https://plugins.gradle.org/m2/com/palantir/docker/com.palantir.docker.gradle.plugin/0.25.0/
Decide on a version, identify the location in the plugin repository: https://plugins.gradle.org/m2/. Go to https://plugins.gradle.org/m2/com/palantir/docker/, then to https://plugins.gradle.org/m2/com/palantir/docker/com.palantir.docker.gradle.plugin/0.25.0/ and inspect the plugin's POM:
<syntaxhighlight lang='xml'>
<project ...>
<modelVersion>4.0.0</modelVersion>
<groupId>com.palantir.docker</groupId>
<artifactId>com.palantir.docker.gradle.plugin</artifactId>
<version>0.25.0</version>
<packaging>pom</packaging>
<dependencies>
  <dependency>
    <groupId>com.palantir.gradle.docker</groupId>
    <artifactId>gradle-docker</artifactId>
    <version>0.25.0</version>
  </dependency>
</dependencies>
</project>
</syntaxhighlight>


=Configure <tt>buildSrc</tt> <tt>build.gradle</tt>=
=Configure <tt>buildSrc</tt> <tt>build.gradle</tt>=

Revision as of 03:09, 11 November 2020

Internal

Overview

This is an example of a custom task that configures the Docker image tag at execution phase. Normally, DockerExtension configuration elements can be configured in build.gradle only at configuration phase. If any of the configuration elements, such as the tag, must be computed dynamically at execution phase, as result of another task execution, it could be done by pulling the DockerExtension instance and invoking the corresponding setter, as shown below.

Identify the Plugin Library

The plugin is declared as follows in a regular sub-project build.gradle:

plugins {
    // some 'com.palantir.docker' plugin classes are used by this project's Gradle extensions,
    // defined in buildSrc, so plugin libraries are declared as buildSrc dependencies, and the 
    // plugin version is defined there. See buildSrc/build.gradle.
    id "com.palantir.docker"
}

Note that the version cannot be declared here if the backing library is to be configured as a buildSrc dependency. It will be declared in buildSrc build.gradle.

Decide on a version, identify the location in the plugin repository: https://plugins.gradle.org/m2/. Go to https://plugins.gradle.org/m2/com/palantir/docker/, then to https://plugins.gradle.org/m2/com/palantir/docker/com.palantir.docker.gradle.plugin/0.25.0/ and inspect the plugin's POM:

<project ...>
<modelVersion>4.0.0</modelVersion>
<groupId>com.palantir.docker</groupId>
<artifactId>com.palantir.docker.gradle.plugin</artifactId>
<version>0.25.0</version>
<packaging>pom</packaging>
<dependencies>
  <dependency>
    <groupId>com.palantir.gradle.docker</groupId>
    <artifactId>gradle-docker</artifactId>
    <version>0.25.0</version>
  </dependency>
</dependencies>
</project>

Configure buildSrc build.gradle