feat(build): deploy to maven.codelibs.org - #15
Merged
Conversation
Maven Central introduced an upload limit that makes it impractical to keep releasing the Fess plugin artifacts there, so the plugins move to maven.codelibs.org over scp. distributionManagement cannot be inherited from fess-parent for this: it is inherited unconditionally and a POM cannot exempt itself from what it declares, so declaring it there also redirected the SNAPSHOT deployments of fess-parent, fess, fess-crawler, fess-crawler-playwright and fess-suggest, which stay on Maven Central. Each plugin declares the CodeLibs repositories itself instead. The scp transport comes from the wagon-ssh build extension inherited from fess-parent, and is used through maven-deploy-plugin.
marevol
force-pushed
the
feat/deploy-to-codelibs-repo
branch
from
August 6, 2026 09:52
6e8a5d4 to
eccefac
Compare
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.
Summary
Maven Central introduced an upload limit that makes it impractical to keep releasing the Fess
plugin artifacts there, so the plugins move to the CodeLibs repository.
fess-parent,fess,fess-crawler,fess-crawler-playwrightandfess-suggeststay on Maven Central.Why this is declared per plugin rather than in fess-parent
distributionManagementis inherited unconditionally and a POM cannot exempt itself from whatit declares. Declaring the CodeLibs repositories in
fess-parenttherefore also redirected theSNAPSHOT deployments of the five projects that stay on Maven Central, because
central-publishing-maven-pluginresolves SNAPSHOT deployments throughproject.getDistributionManagementArtifactRepository()and only falls back tocentralSnapshotsUrlwhen it is absent. See codelibs/fess-parent#62.Why scpexe rather than scp
The transport comes from the
wagon-ssh-externalbuild extension inherited fromfess-parent, which delegates to the platform SSH client. The embedded alternative,wagon-ssh, depends oncom.jcraft:jsch0.1.55 — the final release of that project — whoseonly key types are DSA, ECDSA, RSA and PKCS8; an ed25519 key, or any key stored in the OpenSSH
key file format, is rejected with
invalid privatekeybefore a connection is even attempted.With
scpexe://, key handling follows the local OpenSSH configuration, so ed25519 keys,ssh-agent and
~/.ssh/configall work. See codelibs/fess-parent#64.Verification
project.distributionManagement.snapshotRepository.urlresolves to thescpexe://URLmvn validatedoes not logInstalling Central Publishing features, i.e. the CentralPublishing lifecycle participant stays inactive and
maven-deploy-pluginkeeps itsdefault-deployexecutionmvn deployrunsmaven-deploy-plugin:3.1.4:deployand hands the transfer to the platformSSH client, so the transport resolves and key handling is out of the way. The transfer itself
was not completed, because the verification environment has no route to the repository host.
Depends on
Unsupported transport protocol scpexeNote for whoever runs the deployment
settings.xmlneedscodelibs-repo/codelibs-snapshotsserver entries.