rewrite
DSL is available for configuration.rewrite
configuration at runtime. It will attempt to resolve them from whatever repositories are available to the project. This is accomplished by adding Maven Central, or a mirror of it, to your project's repositories:rewrite
DSL exposes a few configuration options:activeRecipe
- Explicitly turns on recipes by name (the name given in the specs.openrewrite.org/v1beta/recipe
resource). No recipe is run unless explicitly turned on with this setting.activeStyle
- Explicitly turns on a style by name (the name given in the specs.openrewrite.org/v1beta/style
resource). No style is applied unless explicitly turned on with this setting.configFile
- Where to look for a OpenRewrite YML configuration file somewhere in the project directory (or really anywhere on disk). This file is not required to exist. If not specified otherwise, the default value is <project directory>/rewrite.yml
.failOnDryRunResults
- Boolean flag toggling whether rewriteDryRun
should throw an exception and non-zero exit code if changes are detected. Default is false
.sizeThresholdMb
- Threshold over which non-Java sources are ignored during parsing. Default threshold is 10Mb.exclusion
- One or more paths, relative to the project the plugin is applied to, where non-Java sources are ignored during parsing. Supports glob patterns.repositories
Gradle DSL to ensure that your build can resolve dependencies from there or one of its mirrors.rewrite
dependencies:rewrite
dependency configuration, you can tell the Gradle plugin to activate it the rewrite
DSL. For example, here is how you would activate the org.openrewrite.java.testing.junit5.JUnit5BestPractices
recipe that comes with rewrite-testing-frameworks
in a single-project Gradle build:gradle rewriteRun
to run the active recipes and apply the changes. This will write changes locally to your source files on disk. Afterward, review the changes, and when you are comfortable with the changes, commit them. The run
goal generates warnings in the build log wherever it makes changes to source files.git diff
(or your VCS system's equivalent) to see what changes were made, review, and commit them.gradle rewriteDryRun
to dry-run the active recipes and print which visitors would make changes to which files to the build log. This does not alter your source files on disk at all. This goal can be used to preview the changes that would be made by the active recipes.rewriteDryRun
outputs a report in the form of a patch
file, by default under build/reports/rewrite/rewrite.patch
, containing changes that would be made if you were to run rewriteRun
. This patch
file can be used with git
or diff
to view or apply the potential changes. For example, git diff . build/reports/rewrite/rewrite.patch
.rewriteDryRun
can be used as a "gate" in a continuous integration environment by failing the build if rewriteDryRun
detects changes to be made and failOnDryRunResults
is set to true
:rewriteDryRun
can be configured so that when check
runs, rewriteDryRun
does too:gradle rewriteDiscover
to list the recipes available on your classpath.