Knotx / knotx-gradle-plugins

Gradle plugins that help manage Knot.x modules builds.
https://knotx.io
Apache License 2.0
1 stars 3 forks source link

[feature/jcenter-publishing] Fix Artifactory plugin configuration #5

Open tMaxx opened 5 years ago

tMaxx commented 5 years ago

Crucial info

WIP version is in branch feature/jcenter-publishing https://github.com/Knotx/knotx-gradle-plugins/tree/feature/jcenter-publishing This ticket is a part of Knotx/knotx#503.

Description

Currently, when trying to use the bintray-publish plugin with Artifactory configuration, Gradle throws the following error:

> Configure project :
Evaluating root project 'knotx-junit5' using build file 'D:\projects\knotx\knotx-junit5\build.gradle.kts'.
Configuring signAndPublish task for project :

FAILURE: Build failed with an exception.

* Where:
Build file 'D:\projects\knotx\knotx-junit5\build.gradle.kts' line: 19

* What went wrong:
An exception occurred applying plugin request [id: 'io.knotx.bintray-publish', version: '0.1.2']
> Failed to apply plugin [id 'io.knotx.bintray-publish']
   > Task information is not available, as this task execution graph has not been populated.

This is due to how I originally tried to apply the required configuration, as here we cannot use Gradle's Kotlin DSL.

Most probable cause

The culprit is present here: https://github.com/Knotx/knotx-gradle-plugins/blob/f3606b286bfcf8729313270039098bdbade70ef2/src/main/kotlin/io/knotx/bintray-publish.gradle.kts#L60

Most likely, we shouldn't be using the configure<> syntax, or we shouldn't be referencing ArtifactoryPluginConvention but something else entirely.

A proper fix for this may need to develop some middleware around this, or try to mimic how BintrayExtension is configured in the same file. BintrayExtension doesn't exhibit the same problem due to how it is written (almost like a POJO).

Impact

Unless this is fixed, we won't be able to publish snapshots to JFrog OSS snapshot repository.

If we get rid of Artifactory portion, current Bintray plugin configuration should be functional as-is.