SATURDAY, OCTOBER 17, 2026|No. 19066
Software Development · Open Source

OpenRewrite Recipes Migrate to Code Genome Project Requiring Authentication

OpenRewrite's software development recipes have transitioned from Maven Central to the Code Genome Project, necessitating authentication for access and impacting build configurations.

A digital representation of code and data flowing through a network.
A digital representation of code and data flowing through a network. · Photo by Chris Ried on Unsplash
1 sources
Pipeline ingest
3 reads
Positive / Neutral / Negative
0 countries
Related coverage

Recipes are moving from Maven Central to the Code Genome Project. Configure access to keep releases resolving.

OpenRewrite's modules are distributed through the Code Genome Project. Downloads require authentication, so add the repository and credentials to your build to resolve them. See Configure the Code Genome Project repository below. Keep Maven Central configured alongside it, since OpenRewrite's transitive dependencies still resolve from there. Each time a release is made, a bill of materials artifact is also published to correctly align and manage the versions of all published artifacts. The Gradle plugin is published there too, rather than to the Gradle Plugin Portal; see the Gradle plugin configuration for how to resolve it.

It is highly recommended that developers use the rewrite-recipe-bom to align the versions of Rewrite's modules to ensure compatibility. The use of the "bill of materials" means that a developer will only need to specify explicit versions of the BOM and the build plugins:

ModuleVersionLicense
org.openrewrite:rewrite-bom8.93.8Apache License Version 2.0
org.openrewrite:rewrite-maven-plugin6.50.0Apache License Version 2.0
org.openrewrite:rewrite-gradle-plugin7.44.1Apache License Version 2.0
org.openrewrite.recipe:rewrite-recipe-bom3.41.0Apache License Version 2.0
org.openrewrite:rewrite-android8.93.8Moderne Source Available License
org.openrewrite:rewrite-core8.93.8Apache License Version 2.0
org.openrewrite:rewrite-docker8.93.8Apache License Version 2.0
org.openrewrite:rewrite-gradle8.93.8Apache License Version 2.0
org.openrewrite:rewrite-groovy8.93.8Apache License Version 2.0
org.openrewrite:rewrite-hcl8.93.8Apache License Version 2.0
org.openrewrite:rewrite-java8.93.8Apache License Version 2.0
org.openrewrite:rewrite-javascript8.93.8Moderne Source Available License
org.openrewrite:rewrite-json8.93.8Apache License Version 2.0
org.openrewrite:rewrite-kotlin8.93.8Apache License Version 2.0
org.openrewrite:rewrite-mainframe3.2.1Moderne Source Available License
org.openrewrite:rewrite-maven8.93.8Apache License Version 2.0
org.openrewrite:rewrite-polyglot2.13.0Apache License Version 2.0
org.openrewrite:rewrite-properties8.93.8Apache License Version 2.0
org.openrewrite:rewrite-protobuf8.93.8Apache License Version 2.0
org.openrewrite:rewrite-python8.93.8Moderne Source Available License
org.openrewrite:rewrite-ruby8.93.8Moderne Source Available License
org.openrewrite:rewrite-scala8.93.8Moderne Source Available License
org.openrewrite:rewrite-templating1.46.0Apache License Version 2.0
org.openrewrite:rewrite-toml8.93.8Apache License Version 2.0
org.openrewrite:rewrite-xml8.93.8Apache License Version 2.0
org.openrewrite:rewrite-yaml8.93.8Apache License Version 2.0
org.openrewrite.meta:rewrite-analysis2.39.0Apache License Version 2.0
org.openrewrite.recipe:rewrite-all1.30.2Apache License Version 2.0
org.openrewrite.recipe:rewrite-apache2.34.0Moderne Source Available License
org.openrewrite.recipe:rewrite-cucumber-jvm2.20.0Moderne Source Available License
org.openrewrite.recipe:rewrite-feature-flags1.24.2Moderne Source Available License
org.openrewrite.recipe:rewrite-github-actions3.33.0Moderne Source Available License
org.openrewrite.recipe:rewrite-gitlab0.25.2Moderne Source Available License
org.openrewrite.recipe:rewrite-hibernate2.27.0Moderne Source Available License
org.openrewrite.recipe:rewrite-jackson1.31.0Apache License Version 2.0
org.openrewrite.recipe:rewrite-java-dependencies1.64.0Apache License Version 2.0
org.openrewrite.recipe:rewrite-jenkins0.38.2Moderne Source Available License
org.openrewrite.recipe:rewrite-joda0.12.0Moderne Source Available License
org.openrewrite.recipe:rewrite-liberty1.28.2Apache License Version 2.0
org.openrewrite.recipe:rewrite-logging-frameworks3.34.1Moderne Source Available License
org.openrewrite.recipe:rewrite-micrometer0.31.2Moderne Source Available License
org.openrewrite.recipe:rewrite-micronaut2.39.0Apache License Version 2.0
org.openrewrite.recipe:rewrite-migrate-java3.46.0Moderne Source Available License
org.openrewrite.recipe:rewrite-netty0.13.2Apache License Version 2.0
org.openrewrite.recipe:rewrite-okhttp0.25.2Moderne Source Available License
org.openrewrite.recipe:rewrite-openapi0.35.0Apache License Version 2.0
org.openrewrite.recipe:rewrite-pmd0.1.4Moderne Source Available License
org.openrewrite.recipe:rewrite-prethink1.6.0Moderne Source Available License
org.openrewrite.recipe:rewrite-quarkus2.36.2Apache License Version 2.0
org.openrewrite.recipe:rewrite-rewrite0.34.0Moderne Source Available License
org.openrewrite.recipe:rewrite-spring6.41.0Moderne Source Available License
org.openrewrite.recipe:rewrite-spring-to-quarkus0.13.2Moderne Source Available License
org.openrewrite.recipe:rewrite-static-analysis2.45.0Moderne Source Available License
org.openrewrite.recipe:rewrite-testing-frameworks3.49.0Moderne Source Available License
org.openrewrite.recipe:rewrite-third-party0.49.0Apache License Version 2.0

Configure the Code Genome Project repository ​

Every download from the Code Genome Project requires authentication. Use the token as the password in your build, and the email or username you signed in with as the username. See Accessing the Code Genome Project for how to obtain credentials.

If your organization mirrors the Code Genome Project in an internal artifact repository such as Artifactory or Nexus, point your build at that mirror instead and skip the credentials below. That same guide covers onboarding it as a remote repository in Artifactory or Nexus.

  • Maven
  • Gradle

Declare the repository in your pom.xml:

pom.xml


 
 codegenome
 https://artifacts.codegenomeproject.org/maven
 

Keep the credentials out of the POM by putting them in your settings.xml, matched to the repository by id:

settings.xml


 
 
 codegenome
 USERNAME
 TOKEN
 
 

Keep Maven Central alongside it. The Code Genome Project hosts only org/openrewrite and io/moderne, so OpenRewrite's own transitive dependencies still resolve from Maven Central.

build.gradle.kts

repositories {
 mavenCentral()
 maven {
 url = uri("https://artifacts.codegenomeproject.org/maven")
 credentials {
 username = "USERNAME"
 password = "TOKEN"
 }
 }
}

build.gradle

repositories {
 mavenCentral()
 maven {
 url = 'https://artifacts.codegenomeproject.org/maven'
 credentials {
 username = 'USERNAME'
 password = 'TOKEN'
 }
 }
}

CLI Installation ​

Point the CLI at the Code Genome Project so it can resolve recipe artifacts. Skip this if you resolve through an internal artifact repository that already mirrors it.

mod config recipes artifacts maven add https://artifacts.codegenomeproject.org/maven --user USERNAME --password TOKEN

Then install the latest versions of all the OpenRewrite recipe modules into the Moderne CLI:

Source-available modules appear in the table above but are left out of the jar command below, because the Code Genome Project serves them to Moderne customers only. The pip and npm packages are unaffected.

  • Pinned versions
  • Latest versions
mod config recipes jar install org.openrewrite:rewrite-core:8.93.8 org.openrewrite:rewrite-docker:8.93.8 org.openrewrite:rewrite-gradle:8.93.8 org.openrewrite:rewrite-groovy:8.93.8 org.openrewrite:rewrite-hcl:8.93.8 org.openrewrite:rewrite-java:8.93.8 org.openrewrite:rewrite-json:8.93.8 org.openrewrite:rewrite-kotlin:8.93.8 org.openrewrite:rewrite-maven:8.93.8 org.openrewrite:rewrite-properties:8.93.8 org.openrewrite:rewrite-protobuf:8.93.8 org.openrewrite:rewrite-toml:8.93.8 org.openrewrite:rewrite-xml:8.93.8 org.openrewrite:rewrite-yaml:8.93.8 org.openrewrite.recipe:rewrite-all:1.30.2 org.openrewrite.recipe:rewrite-jackson:1.31.0 org.openrewrite.recipe:rewrite-java-dependencies:1.64.0 org.openrewrite.recipe:rewrite-liberty:1.28.2 org.openrewrite.recipe:rewrite-micronaut:2.39.0 org.openrewrite.recipe:rewrite-netty:0.13.2 org.openrewrite.recipe:rewrite-openapi:0.35.0 org.openrewrite.recipe:rewrite-quarkus:2.36.2 org.openrewrite.recipe:rewrite-third-party:0.49.0
mod config recipes pip install openrewrite==8.93.8
mod config recipes npm install @openrewrite/rewrite@8.93.8

Install without a pinned version so you can later run mod config recipes upgrade to pull the newest versions without editing this command.

mod config recipes jar install org.openrewrite:rewrite-core:LATEST org.openrewrite:rewrite-docker:LATEST org.openrewrite:rewrite-gradle:LATEST org.openrewrite:rewrite-groovy:LATEST org.openrewrite:rewrite-hcl:LATEST org.openrewrite:rewrite-java:LATEST org.openrewrite:rewrite-json:LATEST org.openrewrite:rewrite-kotlin:LATEST org.openrewrite:rewrite-maven:LATEST org.openrewrite:rewrite-properties:LATEST org.openrewrite:rewrite-protobuf:LATEST org.openrewrite:rewrite-toml:LATEST org.openrewrite:rewrite-xml:LATEST org.openrewrite:rewrite-yaml:LATEST org.openrewrite.recipe:rewrite-all:LATEST org.openrewrite.recipe:rewrite-jackson:LATEST org.openrewrite.recipe:rewrite-java-dependencies:LATEST org.openrewrite.recipe:rewrite-liberty:LATEST org.openrewrite.recipe:rewrite-micronaut:LATEST org.openrewrite.recipe:rewrite-netty:LATEST org.openrewrite.recipe:rewrite-openapi:LATEST org.openrewrite.recipe:rewrite-quarkus:LATEST org.openrewrite.recipe:rewrite-third-party:LATEST
mod config recipes pip install openrewrite
mod config recipes npm install @openrewrite/rewrite

Moderne Installation ​

Install the latest versions of all the OpenRewrite recipe modules into Moderne using the GraphQL endpoint.

The mutation below uses installRecipesUniversal, which installs into the universal marketplace (visible to everyone) and requires the admin role.

Show GraphQL mutation.

mutation seedOpenRewriteArtifacts {

 load_org_openrewrite_rewrite_core: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite", artifactId: "rewrite-core", version: "LATEST" } }
 ) {
 id
 }
 load_org_openrewrite_rewrite_docker: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite", artifactId: "rewrite-docker", version: "LATEST" } }
 ) {
 id
 }
 load_org_openrewrite_rewrite_gradle: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite", artifactId: "rewrite-gradle", version: "LATEST" } }
 ) {
 id
 }
 load_org_openrewrite_rewrite_groovy: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite", artifactId: "rewrite-groovy", version: "LATEST" } }
 ) {
 id
 }
 load_org_openrewrite_rewrite_hcl: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite", artifactId: "rewrite-hcl", version: "LATEST" } }
 ) {
 id
 }
 load_org_openrewrite_rewrite_java: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite", artifactId: "rewrite-java", version: "LATEST" } }
 ) {
 id
 }
 load_org_openrewrite_rewrite_json: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite", artifactId: "rewrite-json", version: "LATEST" } }
 ) {
 id
 }
 load_org_openrewrite_rewrite_kotlin: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite", artifactId: "rewrite-kotlin", version: "LATEST" } }
 ) {
 id
 }
 load_org_openrewrite_rewrite_maven: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite", artifactId: "rewrite-maven", version: "LATEST" } }
 ) {
 id
 }
 load_org_openrewrite_rewrite_properties: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite", artifactId: "rewrite-properties", version: "LATEST" } }
 ) {
 id
 }
 load_org_openrewrite_rewrite_protobuf: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite", artifactId: "rewrite-protobuf", version: "LATEST" } }
 ) {
 id
 }
 load_org_openrewrite_rewrite_toml: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite", artifactId: "rewrite-toml", version: "LATEST" } }
 ) {
 id
 }
 load_org_openrewrite_rewrite_xml: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite", artifactId: "rewrite-xml", version: "LATEST" } }
 ) {
 id
 }
 load_org_openrewrite_rewrite_yaml: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite", artifactId: "rewrite-yaml", version: "LATEST" } }
 ) {
 id
 }
 load_org_openrewrite_recipe_rewrite_all: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite.recipe", artifactId: "rewrite-all", version: "LATEST" } }
 ) {
 id
 }
 load_org_openrewrite_recipe_rewrite_jackson: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite.recipe", artifactId: "rewrite-jackson", version: "LATEST" } }
 ) {
 id
 }
 load_org_openrewrite_recipe_rewrite_java_dependencies: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite.recipe", artifactId: "rewrite-java-dependencies", version: "LATEST" } }
 ) {
 id
 }
 load_org_openrewrite_recipe_rewrite_liberty: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite.recipe", artifactId: "rewrite-liberty", version: "LATEST" } }
 ) {
 id
 }
 load_org_openrewrite_recipe_rewrite_micronaut: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite.recipe", artifactId: "rewrite-micronaut", version: "LATEST" } }
 ) {
 id
 }
 load_org_openrewrite_recipe_rewrite_netty: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite.recipe", artifactId: "rewrite-netty", version: "LATEST" } }
 ) {
 id
 }
 load_org_openrewrite_recipe_rewrite_openapi: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite.recipe", artifactId: "rewrite-openapi", version: "LATEST" } }
 ) {
 id
 }
 load_org_openrewrite_recipe_rewrite_quarkus: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite.recipe", artifactId: "rewrite-quarkus", version: "LATEST" } }
 ) {
 id
 }
 load_org_openrewrite_recipe_rewrite_third_party: installRecipesUniversal(
 bundle: { maven: { groupId: "org.openrewrite.recipe", artifactId: "rewrite-third-party", version: "LATEST" } }
 ) {
 id
 }
}

Marketplace Sync ​

As an alternative to installing modules one by one, the Moderne CLI can mirror an entire recipe marketplace into your local CLI.

Option 1: Sync from app.moderne.io ​

The default tenant is the free public Moderne instance at app.moderne.io, which already publishes every OpenRewrite recipe artifact listed in the table above. Point the CLI at it (or any other Moderne tenant you have access to), log in, and sync:

mod config moderne edit https://app.moderne.io
mod config moderne login
mod config recipes moderne sync

Option 2: Import a self-hosted CSV ​

If you cannot reach a Moderne tenant — for example in an air-gapped environment — you can supply your own CSV in the same recipes-v5.csv format and import it directly:

mod config recipes import csv path/to/recipes.csv

Recipes with the same name are replaced by the imported version, so this can be re-run to refresh the marketplace. Pair it with the matching JAR/pip/npm/NuGet installs from CLI Installation above so the recipes resolve when run.

Additional sync details ​

Under the hood, mod config recipes moderne sync picks one of two paths against the configured Moderne tenant:

  1. Preferred — REST CSV (SaaS v2): the CLI first tries GET /api/recipes. If the endpoint responds, the body is written to ~/.moderne/cli/recipes-v5.csv and sync is done. The CSV has one row per recipe, with columns: ecosystem, packageName, requestedVersion, version, name, displayName, description, recipeCount, category1–category6, category1Description–category6Description, options, and dataTables. The CLI uses this catalog for search, tab completion, and MCP tooling. The same CSV is a good starting point for Option 2: fetch it once from a tenant you have access to, then host or distribute it as the seed for mod config recipes import csv in environments that cannot reach Moderne directly.
  2. Fallback — GraphQL + per-artifact install (SaaS v1): if the REST endpoint is unavailable, the CLI issues a GraphQL query for every finished recipe deployment and installs each artifact from Maven, the same way mod config recipes jar install would:
query {
 recipeDeployments(state: FINISHED) {
 artifact {
 groupId
 artifactId
 version
 requestedVersion
 datedSnapshotVersion
 }
 }
}

PAN's pipeline reviewed approximately 1 open sources for this article. No human editor reviewed this article before publication.

Related Reads

Show on timeline →

Earlier on PAN

More in Technology →