Maven から Gradle KTS への移行ツール

Tool

概要

(リポジトリの概要を300字程度で説明)

maven-to-gradle は、Claude Code スキルとして実装された自動移行ツールです。入力となる pom.xml を解析して、Gradle Kotlin DSL(build.gradle.kts / settings.gradle.kts)とバージョンカタログ(gradle/libs.versions.toml)、および gradle.properties を生成します。単一モジュール・マルチモジュールの両方に対応し、Spring Boot の starter-parent や BOM の取り扱い、依存関係スコープのマッピング、アノテーションプロセッサ設定、プロファイル(環境)情報の変換といった実務で必要なケースを考慮しています。デュアルビルド(overlay)モードにより段階的な移行も可能です。

GitHub

リポジトリの統計情報

  • スター数: 4
  • フォーク数: 1
  • ウォッチャー数: 4
  • コミット数: 2
  • ファイル数: 6
  • メインの言語: Python

主な特徴

  • pom.xml を解析して Gradle Kotlin DSL(.kts)ファイルを自動生成
  • バージョンカタログ(libs.versions.toml)を生成し依存バージョンを集中管理
  • Spring Boot、BOM、スコープ変換、アノテーションプロセッサを考慮
  • デュアルビルドのオーバーレイモードで段階的移行をサポート

技術的なポイント

(技術的な特徴や注目点を700字程度で説明)

本プロジェクトは Python ベースで、pom.xml の構文と依存関係を解析して Gradle KTS 構成へマッピングするワークフローを実装しています。技術的には XML パーシングを行い、parent/child の継承関係やモジュール構成()を解析して settings.gradle.kts の出力候補を決定します。依存関係については Maven のスコープ(compile, provided, runtime, test など)を Gradle のコンフィグレーションへマッピングし、annotationProcessor 相当の設定や BOM(dependencyManagement)を Gradle の platform/imports に変換します。バージョン管理は libs.versions.toml(Version Catalog)へ集約し、同一バージョンのライブラリをカタログ化して KTS 側から参照できる形にします。Spring Boot の starter-parent は適切なプラグインや依存管理への置き換えロジックが組み込まれており、properties や pluginManagement にある設定は gradle.properties や plugins ブロックに反映されます。マルチモジュール変換ではプロジェクトルートに settings.gradle.kts を生成し、各サブモジュールに個別の build.gradle.kts を作成、必要に応じて親からのプロパティ継承を表現します。デュアルビルド(overlay)モードは既存の Maven ビルドを残しつつ Gradle 出力を重ねて検証できるため、段階的移行やCIパイプラインでの比較テストに有効です。実装はサンプル規模でコミット数は少なく、拡張性のある変換ルールやエッジケース(複雑なプラグイン設定、カスタムリポジトリ、特殊プロファイル)への対応は今後の拡張ポイントになります。また、Claude Code スキルとして LLM を使ったコード生成/変換ガイドの自動化を組み合わせられる設計になっている点も注目に値します。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • LICENSE: file
  • README.md: file
  • SKILL.md: file
  • references: dir

…他 1 ファイル

まとめ

(総評を50字程度で)

Maven から Gradle KTS への自動移行を狙った実用的なスキル実装。拡張で実務移行に強力。

リポジトリ情報: