[ https://issues.apache.org/jira/browse/MNG-8584?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17945989#comment-17945989 ]
Tamas Cservenak commented on MNG-8584: -------------------------------------- Cool, thanks [~cowwoc] for this example! Every day one learns something. On side note, I am working on [https://github.com/maveniverse/njord] that would allow exactly this, and my problem so far was "where to get temp storage", but you literally showed me (hint: idea is to stage locally on node, export bundle, upload it, and on assembling node download them all, import, and merge using goal [https://maveniverse.eu/docs/njord/plugin-documentation/merge-mojo.html] . many of these steps like "export", "import" and not done yet, njord works on "all is built on same machine", but will make this merge step easier as well. > Maven4: Central publishing readiness > ------------------------------------ > > Key: MNG-8584 > URL: https://issues.apache.org/jira/browse/MNG-8584 > Project: Maven > Issue Type: Improvement > Reporter: Lars Bruun-Hansen > Priority: Major > Labels: maven-4 > > I have done some verification wrt to readiness of Sonatype's maven plugins > for publishing to Maven Central. > > *Why track it here? Isn't it purely Sonatype's problem?* > True, but Central plays such a crucial role in the ecosystem. If users are > not able to publish to Central with Maven 4 then it is an issue to be aware > of. The issues listed below have been reported to Sonatype. > The idea is to update this ticket once they are resolved by Sonatype either > by doc updates by them or by Sonatype releasing new versions of their > plugins. And close it again once there is something more tangible. > Logged as type {{{}Improvement{}}}. Not sure that is the best one but {{Bug}} > would be incorrect. > h2. Recap: How is publishing to Central done? > There are at least 3 ways to publish to Maven Central: > * {*}Maven's own Deploy Plugin{*}. This plugin uploads files one-by-one. > Hence it will only work for endpoints which supports this. (as opposed to > bundled upload). Also, it won't support an automated workflow, meaning the > developer will still need to go into some UI to "release" his artifact .. > even it passes all checks. > * {*}Sonatype Nexus Staging Plugin{*}. > * {*}Sonatype Central Publishing Plugin{*}. > Below is an assessment of each. > h2. Maven Deploy Plugin > The Maven Deploy Plugin unsurprisingly works with Maven 4. It can be used as > a temporary workaround to upload to Central, but only if the endpoint support > file-by-file upload. > Projects registered on Central _after_ circa March 2024 uses Sonatype's new > mechanism for publishing to Central. There is no longer a Nexus2 instance > behind it. As far as I can tell (documentation is scarce), this new endpoint, > {{{}central.sonatype.com{}}}, only support bundle uploads. Hence I would not > think the Maven Deploy Plugin can be used. > However, for projects registered on Central before circa March 2024 you are > effectively still publishing into an Nexus2 instance and that one indeed > supports file-by-file upload. But as mentioned, you'll not be able to fully > automate the release process. > > h2. Sonatype Nexus Staging Plugin > ([LINK|https://github.com/sonatype/nexus-maven-plugins/blob/main/staging/maven-plugin/README.md]) > This plugin is applicable to all projects which upload to either > {{s01.oss.sonatype.org}} or {{{}oss.sonatype.org{}}}. I would think that is > about 95% of all projects on Central. > I haven't been able to make this plugin work with Maven 4 RC2. The plugin > works via the extension mechanism to replace Maven's own Deploy plugin. > However, as a workaround you can skip the whole extension mechanism and > instead explicitly bind the plugin. Like in the good old days. > First, you need to make sure Maven's own Deploy plugin doesn't fire: > {code:xml} > <properties> > <maven.deploy.skip>true</maven.deploy.skip> > </properties> > {code} > and then make an explicit goal binding for the plugin and don't use extension > mechanism: > {code:xml} > <plugin> > <groupId>org.sonatype.plugins</groupId> > <artifactId>nexus-staging-maven-plugin</artifactId> > <version>1.7.0</version> > <executions> > <execution> > <id>central-deploy</id> > <phase>deploy</phase> > <goals> > <goal>deploy</goal> > </goals> > </execution> > </executions> > <!-- <extensions>true</extensions>--> > <configuration> > <serverId>maven-central</serverId> > .... > </configuration> > </plugin> > {code} > > The problem about Maven 4 readiness for this plugin has been reported to > Sonatype. > h2. Sonatype Central Publishing Plugin > This represents the new way of publishing to Maven Central. > The plugin, while documented > [HERE|https://central.sonatype.org/publish/publish-portal-maven/], does not > have a public GitHub project. (Sonatype has confirmed that this is > intentional!). The documentation doesn't document what goals the plugin has > but the [Maven Help > Plugin|https://maven.apache.org/plugins/maven-help-plugin] can reveal that. > I haven't been able to make this plugin work with Maven 4 RC2. The plugin > works via the extension mechanism to replace Maven's own Deploy plugin. > However, as a workaround you can skip the whole extension mechanism and > instead explicitly bind the plugin. Like in the good old days. > First, you need to make sure Maven's own Deploy plugin doesn't fire: > {code:xml} > <properties> > <maven.deploy.skip>true</maven.deploy.skip> > </properties> > {code} > and then make an explicit goal binding for the plugin and don't use extension > mechanism: > {code:xml} > <plugin> > <groupId>org.sonatype.central</groupId> > <artifactId>central-publishing-maven-plugin</artifactId> > <version>0.7.0</version> > <executions> > <execution> > <id>central-deploy</id> > <phase>deploy</phase> > <goals> > <goal>publish</goal> > </goals> > </execution> > </executions> > <!-- <extensions>true</extensions> --> > <configuration> > <publishingServerId>maven-central</publishingServerId> > .... > </configuration> > </plugin> > {code} > > The problem about Maven 4 readiness for this plugin has been reported to > Sonatype. -- This message was sent by Atlassian Jira (v8.20.10#820010)