Stop nexus-staging hijacking the deploy phase - #59
Merged
Conversation
The plugin declared <extensions>true</extensions>, which replaces the deploy lifecycle: the goal that ran was injected-nexus-deploy, never maven-deploy-plugin. For a release version it performed the OSSRH staging workflow and required a server credential with ID "ossrh". Nothing defines one, and nothing should -- distributionManagement points at GitHub Packages. So no non-SNAPSHOT version could publish. 2.16.0 failed on the parent pom with both library modules skipped, and nothing was uploaded. A SNAPSHOT version took a bulk-deploy path instead, which is why every successful publish in this repository's history has been a SNAPSHOT and the bug went unnoticed since 2.5.4-snapshot. Removing the plugin lets maven-deploy-plugin handle deploy and honour distributionManagement. Verified against a local file repository at both a SNAPSHOT and a release version: all three artifacts deploy, the parent pom included, which consumers resolving cfml.parsing cannot do without. The four trailing Sonatype comments go too -- they document a publishing route this project does not use. Closes #58
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #58.
nexus-staging-maven-plugindeclared<extensions>true</extensions>, which replaces the deploy lifecycle — the goal that ran wasinjected-nexus-deploy, nevermaven-deploy-plugin. For a release version it performed the OSSRH staging workflow and required a server credential with IDossrh. Nothing defines one, and nothing should:distributionManagementpoints both repositories at GitHub Packages.The result was that no non-SNAPSHOT version could publish. Run 31670242695 on
2.16.0:Nothing was uploaded — the parent pom failed first and took the modules with it.
Why it survived since 2.5.4-snapshot
A SNAPSHOT version doesn't take the staging path. The same plugin, in the same pom, on the successful
2.16.0-SNAPSHOTpublish an hour later:Every successful publish in this repository's history has been a SNAPSHOT, so the failure mode was only reachable by the one thing the workflow's tag trigger exists to do.
Verification
Deploy routing, against a local file repository so nothing touches the network. Both version shapes, because the SNAPSHOT path is the one that currently works and must not regress:
2.16.0-SNAPSHOTdeploy:3.1.2:deploy (default-deploy)× 3, timestamped artifacts2.16.0-RELEASETESTdeploy:3.1.2:deploy (default-deploy)× 3 — previously failed hereThe release run produced what the failing run never reached:
The parent pom is there, which
CLAUDE.mdflags as the artifact consumers resolvingcfml.parsingcannot do without.The temporary version was reverted and
mvn packagere-run, so the twelve version locations all read2.16.0-SNAPSHOTand the diff ispom.xmlalone../gradlew buildAlso removed
Four trailing comments documenting a Sonatype publishing route this project does not use:
The
deployprofile itself stays — it carries the source, javadoc and GPG plugins and is independent of where artifacts go.Not fixed here
Noticed while tracing this, out of scope, no issue filed yet: the publish workflow runs plain
mvn deploywithout-P deploy, so themaven-source-pluginandmaven-javadoc-pluginexecutions never fire. Published artifacts carry no sources or javadoc jars. Worth a look separately — say the word and I'll file it.Generated by Claude Code