通常のテキストではなくASTパターンにマッチさせて、コードの検索、Lint、書き換えを行うCLIツールです。
openrewrite/rewrite
複数のリポジトリのソースコードにレシピを適用し、フレームワーク移行やセキュリティ修正を行うオープンソースの自動リファクタリングエンジン。
- スター
- 3,955
- フォーク
- 601
- 未解決の Issue
- 307
- 最終コミット
- 17 時間前
これは何?
OpenRewriteは、パッケージ済みのレシピをソースコードに適用し、フレームワーク移行やセキュリティ修正、スタイルの統一を行う自動リファクタリングのエコシステムです。コードをLossless Semantic Tree(LST)と呼ばれる型情報を考慮したモデルで扱い、フォーマットを維持しながらレシピで正確に編集できます。
Java、Kotlin、Groovy、JavaScript/TypeScript、Python、C#向けのパーサーと基本レシピを利用できます。Javaプロジェクトでは、GradleおよびMavenのプラグインを使って、単一のレシピを1つのリポジトリに対して実行できます。レシピのカスタマイズや、ゼロからの作成も可能です。
プロジェクトはModerneが保守しています。Moderneは、同じレシピを一度に複数のリポジトリで実行できる商用プラットフォームのほか、マルチリポジトリ対応のCLIやコーディングエージェント向けツールを提供しています。
主な機能
- 01フレームワーク移行やセキュリティ修正に使える、パッケージ済みのリファクタリングレシピを実行します。
- 02フォーマットを維持する、型情報を考慮したLossless Semantic Treeにコードを解析します。
- 03Java、Kotlin、Groovy、JavaScript/TypeScript、Python、C#に対応しています。
- 04Javaプロジェクトでレシピを実行するためのGradleおよびMavenプラグインを提供します。
- 05既存のレシピをカスタマイズしたり、独自のレシピを作成したりできます。
ユースケース
- Javaのコードベースを自動編集し、新しいフレームワークのバージョンにアップグレードする。
- リポジトリ全体に同じセキュリティ修正やスタイル変更を適用する。
- ファイルを1つずつ手作業で編集せずに、技術的負債をまとめて解消する。
クイックスタート
- 1
公式クイックスタートガイドを読む
- 2
JavaプロジェクトにOpenRewrite GradleまたはMavenプラグインを追加し、レシピを実行する
使う前に知っておきたいこと
- 一部のレシピと追加の言語パーサーの利用には、Moderneの商用ライセンスが必要か、Moderne Source Available Licenseが適用されます。
- GradleプラグインとMavenプラグインは、単一のリポジトリに対して一度に1つのレシピを実行します。
トピック
よくある質問
- rewrite とは?
- 複数のリポジトリのソースコードにレシピを適用し、フレームワーク移行やセキュリティ修正を行うオープンソースの自動リファクタリングエンジン。 OpenRewriteは、パッケージ済みのレシピをソースコードに適用し、フレームワーク移行やセキュリティ修正、スタイルの統一を行う自動リファクタリングのエコシステムです。コードをLossless Semantic Tree(LST)と呼ばれる型情報を考慮したモデルで扱い、フォーマットを維持しながらレシピで正確に編集できます。
- rewrite は無料で使えますか?ライセンスは?
- rewrite は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- rewrite は今もメンテナンスされていますか?
- 活発にメンテナンス中。rewrite の最終コミットは 2026年11月6日 です。
- rewrite は何に使えますか?
- Javaのコードベースを自動編集し、新しいフレームワークのバージョンにアップグレードする。 リポジトリ全体に同じセキュリティ修正やスタイル変更を適用する。 ファイルを1つずつ手作業で編集せずに、技術的負債をまとめて解消する。
- rewrite のインストール方法は?
- 公式クイックスタートガイドを読む JavaプロジェクトにOpenRewrite GradleまたはMavenプラグインを追加し、レシピを実行する
- rewrite はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/openrewrite/rewrite
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
プロジェクト全体での名前変更、移動、抽出など、安全なコード変換を行うPythonリファクタリングライブラリです。
Java 1〜25のソースをASTに変換するパーサーと、宣言や型を解決するシンボルソルバー。
PHPで書かれたPHPパーサー。PHPのソースコードをASTに変換し、静的解析やコード操作に活用できます。
主にエディタープラグインで使われる、補完、定義へのジャンプ、リファクタリング、コード検索向けのPython静的解析ライブラリです。
コードベースやドキュメントなどから、AIコーディングアシスタント向けの知識グラフをローカルで構築