| commit | 19166d123856bbb709181da2ab286678c5c1c6ae | [log] [tgz] |
|---|---|---|
| author | Hervé Boutemy <hboutemy@apache.org> | Sun Oct 05 11:12:37 2025 +0200 |
| committer | Hervé Boutemy <hboutemy@apache.org> | Sun Oct 05 11:12:37 2025 +0200 |
| tree | 63d7ae4e31051df0a88188a984b1a791cf4c2773 | |
| parent | 87da7d34c287bec6487bbdee4e83d8710eab1b84 [diff] |
move artifacts to deploy groupId
Study to better understand maven-deploy-plugin, how it deploys artifacts traditionnally to a Maven repository, and how the new Maven Central Portal publication changes the approach.
This study starts with a base base project for the problem space, with 6 tests:
This will be followed by an evaluation based on differences:
pom.xml configuration of publication target for SNASPHOT and release: <project><distributionManagement><release><id>/<url>,settings.xml's <server> for credentials,Whatever solution is chosen, the fact that Maven Central Portal now provides an API where we upload one single archive deployment bundle help resrtying upload if anything goes unexpected.
Pro: Configuring is easy, then script creating a tar or zip archive and upload with UI or curl.
Limitation: scripting for upload (like it or not)
Pro: Easy to configure.
Drawbacks:
pom.xml distributionManagement-source.jar but not in Git, and the governance and roadmap of is not open,maven-deploy-plugin at runtime, which confuses plugins like maven-artifact-plugin, cyclonedx-maven-plugin or spdx-maven-plugin that detect skipped modules for deploymentPro: respects Maven‘s pom.xml distributionManagement, even hiding difference between SNAPSHOT and release, and hiding the fact that upload URL is different from download URL for Maven Central (something many tools don’t manage well)
Con: not clear how to automate publication when there are multiple stores
Having a plugin to decouple Maven's build from publication to remote gives great opportunities to better manage the staging of content during build vs the upload/publication once build is ok.
Pro: does a lot
Con: does a lot, and replaces classical Maven release plugin