Skip to content

Register to Publish Via the Central Portal⚓︎

Registration Note

From February 1st, 2024, all registration will be via the Central Portal. For information about legacy registration, please see the relevant documentation. For support with switching to publish via the legacy OSSRH publishing method during Portal Early Access, please see the section below.


Any components you successfully publish with Publisher Early Access will sync with Maven Central

As such, you are bound by and should review our full terms of service.

Once released/published, you will not be able to remove/update/modify your components.

Please see the Can I change (modify, delete, update) a component on Central? FAQ for more details on this long-standing policy.

Create an account⚓︎

If you haven't signed up for the Central Portal or have been automatically signed out, click the "Sign In" link at the top right of

Landing Page with Sign In Link

The Central Portal supports social logins via Google or GitHub. You can also choose your own username and password. If you choose to sign up with a social login, Sonatype will receive access to the e-mail address associated with your social login account. Our Identity Provider supports multiple social logins, so, if you would like to see more providers in the future, please let us know!


Please provide a valid e-mail when signing up. You will need access to that e-mail address to complete the signup process. Sonatype will use also use that e-mail address to communicate with you whenever you need support with the Central Portal.

Sign Up Form

Managing Your Credentials⚓︎

If you've forgotten your password, or simply want to rotate your credentials as part of good password hygiene, you can find a link to reset your password at the bottom of the Sign-In form:

Sign In Form

Clicking that link will bring you to the Reset Password form:

Reset Password Form


Sonatype will never contact you for your password. You must use the links on to manage your credentials.

Choosing a Namespace⚓︎

If you are new to the Central Portal, you will have no verified namespaces and will see a prompt to view instructions for verifying namespaces:

No Verified Namespaces


If you do not see this pop-up AND you signed up with GitHub, then Sonatype was able to grant you permissions to the namespace associated with your GitHub identity automatically. As part of your GitHub subscription, GitHub provides you with a domain that reflects your username and allows you to publish GitHub Pages under that domain. Because of this, Sonatype can, in most cases, automatically verify and provision publishing access to a namespace that looks like io.github.<your Github username>.

If you click the "View Instructions to Verify Namespace" button, your browser will open a new tab showing this documentation.

Before you can publish your components, you must choose a namespace. In the Maven ecosystem, this is also known as a groupId, which is one of the three required coordinates to describe any component published to Maven Central, i.e. groupId, artifactId, version. We've previously written about choosing your coordinates in our original publishing guide.

Namespaces identify your top-level project or your organization uniquely across all other publishers whose components are hosted on Maven Central.

Adding a Namespace⚓︎

To add a namespace, click on your username/e-mail address in the top right corner of This will open a dropdown menu, where you can click the "View Namespaces" link:

View Namespaces Link in Dropdown

For DNS⚓︎

Similar to the Java package naming convention a namespace can reuse the domain name system in a reversed manner. This means that if you are the owner or maintainer of a domain name, you can use any groupId starting with the reverse domain name and as many subsections as you desire.

E.g., if you control, you can use any groupId starting with com.example e.g. com.example.domain, com.example.testsupport and so on. Other examples are

  • -> org.springframework
  • -> com.example
  • ->


The groupId should reverse the domain name exactly, even if the domain name contains hyphens or other characters that would result in an invalid Java package name. Hyphens are perfectly acceptable in groupIds, and you would not need to change your Java package name to match it.

For Code Hosting Services with Personal groupId⚓︎

We support a simple verification process for artifacts whose code is hosted in services listed in the table below. If you use one of these services, a simple verification will be required to prove ownership.

For the user myusername on each service

Service Example namespace
GitHub io.github.myusername
GitLab io.gitlab.myusername
Gitee io.gitee.myusername
Bitbucket io.bitbucket.myusername

You can then click on either button labeled "Add Namespace":

Publishing Settings - Namespaces

Enter the namespace you've chosen based on the guidance in the previous section and click "Submit":

Add Namespace

Your namespace request will be created, but it will start in the "Unverified" state:

Namespace Added

Clicking the "Verify Namespace" button will ask you to confirm whether you're ready for us to verify your namespace (on how to verify, see Verifying a Namespace):

Verify Namespace

Clicking "Confirm" will move your request to the "Verification Pending" state:

Namespace Verification Pending

Verifying a Namespace⚓︎

By DNS⚓︎

Before Sonatype can grant you permissions to publish under your requested namespace, we must validate that you own the web domain reflected by your namespace. You can prove domain ownership by adding a DNS TXT record with a value set to the Verification Key we assigned to your namespace request.

Click the clipboard icon next to the Verification Key to copy the value to your computer's clipboard:

Copy Verification Key to Clipboard

You can then use this value in setting up the DNS TXT record with your DNS registrar or web hosting provider. Please see this FAQ for instructions on setting up DNS TXT records with popular DNS registrars and hosting providers.

If you have set up your DNS TXT record correctly, it should only take a few minutes for us to verify your namespace. You can refresh the Namespace page to see if the verification status has changed to "Verified." If verification takes more than a few minutes to complete or returns an error, please send an e-mail to and provide as much supporting information as you can (e.g. screenshots, logs, steps to reproduce).

By Code Hosting Services⚓︎

If you want to use a domain linked to a Hosting Service we need you to prove ownership of the account by creating a temporary, public repository with a name having the value set to the Verification Key we assigned to your namespace request.

E.g. if you want to use io.gitlab.myusername you must create the public repository like this

Click the clipboard icon next to the Verification Key to copy the value to your computer's clipboard:

Copy Verification Key to Clipboard

The same applies for the other Hosting Services, e.g. if you want to use com.gitee.myusername you must create the public repository

At the end of the process when your groupId is registered you can simply delete the empty repository. It is only needed during the validation phase.

Namespace details and actions⚓︎

The menu in the top right of the namespace verification card allows you to do certain actions:

Namespace Menu

  • View ID - This shows you the Verification Key for your namespace request.
  • Cancel Verification - This will cancel the verification process and return the request to the "Unverified" state.
  • View History - View the status of each of your verification requests. If it takes longer than a few minutes for us to verify your namespace, you can use the View History link to see if there were any errors related to our validation process and find out how you can get help: Namespace View History
  • View Users - This is currently unsupported, but in later releases, the Publisher experience on will allow users to invite other users to publish under namespaces they have already verified.
  • Remove Namespace - If you change your mind about using this namespace, click this link to delete your request.

GitHub Namespaces⚓︎

As mentioned above, if you sign up with a GitHub account, you will automatically receive a verified namespace in the form io.github.<github username>. The intent of this is to reduce the effort required in order to publish to Maven Central, by offloading part of the verification process (proof of domain ownership) to GitHub.

Currently, we only support the GitHub username that you used to sign up, so io.github.<github organization name> is not available as an automatically registered namespace.

If you log in to your account via GitHub and you do not have an automatically created namespace, please email for help.

Existing OSSRH Namespaces⚓︎

If you attempt to register a namespace and the registration fails, it might be because you or someone else has already registered that domain via the old OSSRH publishing workflow. In order to ensure that we uphold the immutability of components published to Maven Central, we do not allow namespaces to be active for both OSSRH and the new Portal workflow.

If you want to migrate your namespace(s), please email Ideally, you should use the same email that was used to log in to and make the original namespace registration request, to create an account on the new Portal. If the accounts are different, we will need to perform further verification before performing the namespace transfer to the Portal.

As documented below, manually publishing has a slightly different structure for the bundled archive file and publishing via Maven requires a different plugin, so you will need to update your existing build process.

As this is in the Early Access phase, we will support migrating back temporarily to the OSSRH workflow if you encounter an issue that would prevent you from successfully publishing within an acceptable time frame.


Once you have a verified namespace, you can read further documentation about publishing via the Central Portal and begin publishing to Maven Central.

Switching To OSSRH During Portal Early Access⚓︎

Until the Central Portal reaches General Availability, we will consider requests to migrate back to OSSRH on a case-by-case basis. If you are encountering issues with publishing via a supported method such as Maven, we would prefer to work with you and address those concerns.

In order to request to migrate to OSSRH, you will need to email with your account information and the namespace(s) you wish to migrate. Providing the reason you wish to migrate backwards would be helpful for our efforts in prioritizing which ecosystems we should focus on next as we work towards General Availability.

Once the namespaces are successfully migrated, we will respond to your email with instructions on how to publish via OSSRH, but they can also be found here.