Publishing plugin that depends on local module

Apologies if this is covered somewhere, but I was unable to find any details on the specific issue I am seeing.

The Hibernate ORM build is composed into a number of modules (sub-projects) including, amongst others, hibernate-core and a Gradle plugin hibernate-gradle-plugin (Gradle - Plugin: org.hibernate.orm).

The plugin has a dependency on the hibernate-core module which it defines as:

dependencies {
	implementation project( ':hibernate-core' )
	...
}

This plugin at the moment is somehow forcing a dependency on a SNAPSHOT version of hibernate-core. I am trying to track this down, but the first logical place I would like to loo is the plugin atrifact’s descriptor. But I have no idea where those actually get published.

I have read through -

But found nothing relevant. Any pointers?

Thanks

I only see 3 versions of that plugin (6.0.0.Alpha9, 6.0.0.CR2, 6.0.0.Final), but only CR2 depends on a SNAPSHOT version. Both Alpha9 and Final depend on their respective version of hibernate-core, so this seems more like a one-off issue with the publishing of CR2.

With a project dependency, the configured project version is going to determine what actually ends up in the POM, but this is where things get a bit odd (all 3 versions might have been handled slightly differently).

TAG             VERSION IN TAGGED COMMIT    VERSION IN PLUGIN POM
6.0.0.Alpha9    6.0.0.Alpha9                6.0.0.Alpha9
6.0.0.CR2       6.0.0-SNAPSHOT              6.0.0-SNAPSHOT
6.0.0.Final     6.0.1-SNAPSHOT              6.0.0.Final

I believe your release process is actually overriding the version number used to do the release, but I don’t think I can see (or didn’t find) anything related to the execution of that process. I can’t tell if Alpha9 was only correct because of the version in the tagged commit or if perhaps something was fixed later for Final.

There’s not anything special about the plugin artifact descriptors themselves vs. any other Maven repository. You can see the exact coordinates in the legacy application section of your plugin page along with the URL. (i.e. org.hibernate.orm:hibernate-gradle-plugin:6.0.0.Final is at https://plugins.gradle.org/m2/org/hibernate/orm/hibernate-gradle-plugin/6.0.0.Final/). Of course, there’s the extra POM to also support the plugins { } block with the id, but that’s not relevant for the dependencies of your plugin.

Thanks James!

It was the https://plugins.gradle.org/m2 part I was missing/asking about.

I think I found the problem and you are correct that it did not have anything to do with the plugin publishing per-se. The details are at [HHH-15193] - Hibernate JIRA if anyone is interested. Had to do with injecting (filter-replace) text into resources files as part of processResources and not defining that injected value (here the released version) as input to that task.