Recipes
Migrate to Java 17 | OpenRewrite Docs (opens in a new tab)
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \
-Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-migrate-java:RELEASE \
-Drewrite.activeRecipes=org.openrewrite.java.migrate.UpgradeToJava17 \
-Drewrite.exportDatatables=true
Use local variable type inference | OpenRewrite Docs (opens in a new tab)
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \
-Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-migrate-java:RELEASE \
-Drewrite.activeRecipes=org.openrewrite.java.migrate.lang.UseVar \
-Drewrite.exportDatatables=true
Code cleanup | OpenRewrite Docs (opens in a new tab)
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \
-Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-static-analysis:RELEASE \
-Drewrite.activeRecipes=org.openrewrite.staticanalysis.CodeCleanup \
-Drewrite.exportDatatables=true
Common static analysis issues | OpenRewrite Docs (opens in a new tab)
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \
-Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-static-analysis:RELEASE \
-Drewrite.activeRecipes=org.openrewrite.staticanalysis.CommonStaticAnalysis \
-Drewrite.exportDatatables=true
SLF4J best practices | OpenRewrite Docs (opens in a new tab)
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \
-Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-logging-frameworks:RELEASE \
-Drewrite.activeRecipes=org.openrewrite.java.logging.slf4j.Slf4jBestPractices \
-Drewrite.exportDatatables=true
Lombok Best Practices | OpenRewrite Docs (opens in a new tab)
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \
-Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-migrate-java:RELEASE \
-Drewrite.activeRecipes=org.openrewrite.java.migrate.lombok.LombokBestPractices \
-Drewrite.exportDatatables=true
AssertJ best practices | OpenRewrite Docs (opens in a new tab)
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \
-Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-testing-frameworks:RELEASE \
-Drewrite.activeRecipes=org.openrewrite.java.testing.assertj.Assertj \
-Drewrite.exportDatatables=true
Replace String literals with HttpHeaders constants | OpenRewrite Docs (opens in a new tab)
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \
-Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-spring:RELEASE \
-Drewrite.activeRecipes=org.openrewrite.java.spring.http.ReplaceStringLiteralsWithHttpHeadersConstants \
-Drewrite.exportDatatables=true
Replace String literals with MediaType constants | OpenRewrite Docs (opens in a new tab)
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \
-Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-spring:RELEASE \
-Drewrite.activeRecipes=org.openrewrite.java.spring.http.ReplaceStringLiteralsWithMediaTypeConstants \
-Drewrite.exportDatatables=true
Remove @RequestMapping annotations | OpenRewrite Docs (opens in a new tab)
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \
-Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-spring:RELEASE \
-Drewrite.activeRecipes=org.openrewrite.java.spring.NoRequestMappingAnnotation \
-Drewrite.exportDatatables=true
Use logger instead of printStackTrace() | OpenRewrite Docs (opens in a new tab)
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \
-Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-logging-frameworks:RELEASE \
-Drewrite.activeRecipes=org.openrewrite.java.logging.PrintStackTraceToLogError \
-Drewrite.exportDatatables=true
Use logger instead of system print statements | OpenRewrite Docs (opens in a new tab)
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \
-Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-logging-frameworks:RELEASE \
-Drewrite.activeRecipes=org.openrewrite.java.logging.SystemPrintToLogging \
-Drewrite.exportDatatables=true
Execution
-
Options
- Gradle build script
- Gradle init script
- Maven POM
- Maven CLI
- Moderne CLI
-
Takeaway
-
Non invasive
- Gradle init script and Maven CLI are preferred as they don't change existing build config.
-
Part of build lifecycle
- Add the OpenRewrite config to existing Gradle build script or Maven POM.
-
Gradle init script
// init.gradle
initscript {
repositories {
maven { url "https://plugins.gradle.org/m2" }
}
dependencies { classpath("org.openrewrite:plugin:7.0.3") }
}
rootProject {
plugins.apply(org.openrewrite.gradle.RewritePlugin)
dependencies {
rewrite("org.openrewrite.recipe:rewrite-logging-frameworks:3.0.0")
}
rewrite {
activeRecipe("org.openrewrite.java.logging.slf4j.JulGetLoggerToLoggerFactoryRecipes")
setExportDatatables(true)
}
afterEvaluate {
if (repositories.isEmpty()) {
repositories {
mavenCentral()
}
}
}
}
gradle --init-script init.gradle rewriteRun
Maven CLI
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \
-Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-docker:RELEASE \
-Drewrite.activeRecipes=org.openrewrite.docker.search.FindDockerImageUses \
-Drewrite.exportDatatables=true