fix(build): declare <url> in the SCIM module POM and gate PRs on the Maven Central rules - #45
Merged
Merged
Conversation
spring-services-scim was the only module without an explicit <url>. Maven then derives it from the parent as parent.url + "/" + artifactId, and PomChecker rejects that derived value, which made JReleaser abort the 1.4.0 release in the "Verifying POMs" stage before any upload. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Runs PomChecker's check-maven-central on every PR with the same settings JReleaser applies during the release, so a POM that Maven Central would reject fails in CI instead of after the release tag is pushed. fail.on.warning is what makes it bite: PomChecker reports a value derived from the parent (the missing <url> that broke 1.4.0) as a warning, and JReleaser treats those as fatal. The release check is disabled because main carries a -SNAPSHOT version; the release workflow verifies the version against the tag instead. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
What
<url>element tospring-services-scim/pom.xml, matching every other module POM in the reactor.Check POMs against the Maven Central rulesstep tobuild.ymlthat runs PomChecker on every PR.Why
spring-services-scimwas the only one of the eleven POMs without an explicit<url>. Maven then derives the value from the parent asparent.url + "/" + artifactId, and PomChecker rejects that derived value:This aborted the 1.4.0 release in JReleaser's Verifying POMs stage — before any upload, so nothing reached Maven Central and no GitHub release was created. The
v1.4.0tag has been re-pointed at a commit carrying this same fix.The guard
The CI step runs the same PomChecker goal JReleaser uses during the release:
checker.fail.on.warning=trueis what makes it bite — PomChecker classifies the derived-from-parent cases as warnings, and JReleaser treats them as fatal. Without this flag the broken POM passes.checker.release=falseskips the "no-SNAPSHOT" rule, whichmainmust violate. The release workflow already verifies the POM version against the tag.Verified locally: green across all eleven modules with the fix, and red with the exact release error message when the
<url>line is removed again.🤖 Generated with Claude Code