mcpField
Q
quarkus-update

quarkus-update

github.com/quarkusio開発37211 回インストール2 日前に更新
リポジトリ

quarkus-update について

quarkus-updateは、Quarkusプロジェクトのビルドファイルを確認し、アップグレードを評価するスキルです。MavenまたはGradleの設定を生成済みの参照と比較し、更新のドライランと生成物の差分から作業項目を整理します。

主な機能

  1. 01MavenとGradleのビルドファイルを検出
  2. 02バージョン別の参照ファイルと比較
  3. 03利用可能なQuarkusバージョンを確認
  4. 04更新マイグレーションをドライラン
  5. 05自動変更と手動変更を区別

活用シーン

  1. 01Quarkusプロジェクトのビルド設定確認
  2. 02生成された参照との差分の特定
  3. 03新しいQuarkusバージョンへの更新評価
  4. 04自動移行後に必要な手作業の計画

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/quarkusio/skills --skill quarkus-update

インストール後、Claude Code で/quarkus-updateを入力して読み込まれたか確認します。

詳細

Quarkus プロジェクトのチェック

code-with-quarkus-compare の参照用生成プロジェクトと比較して、Quarkus プロジェクトのビルドファイルが最新かどうかを確認します。

ステップ 1:ビルドツールとバージョンを検出する

プロジェクトのルートにあるビルドファイルを特定します。

ファイルビルドツールタグのプレフィックス
pom.xmlMavenmaven-
build.gradleGradlegradle-
build.gradle.ktsGradle Kotlin DSLgradle-kotlin-dsl-

Quarkus のバージョンを取得します。

  • Maven(pom.xml): <quarkus.platform.version> プロパティ、または <dependencyManagement> 内の quarkus-bom のバージョンを確認します。
  • Gradle(build.gradle): ext ブロックまたは gradle.properties 内の quarkusPlatformVersion を確認します。
  • Gradle KTS(build.gradle.kts): val quarkusPlatformVersion または BOM の宣言を確認します。

参照用タグを組み立てます:{tag_prefix}{version}(例:maven-3.15.7)。

ステップ 2:ビルドファイルを参照用ファイルと比較する

参照用のビルドファイルを取得します。

https://raw.githubusercontent.com/quarkusio/code-with-quarkus-compare/{tag}/{build_file}

例:https://raw.githubusercontent.com/quarkusio/code-with-quarkus-compare/maven-3.32.4/pom.xml

ユーザーのビルドファイルを参照用ファイルと比較し、次の点に注目します。

  • プラグインのバージョンと設定(コンパイラープラグイン、surefire、failsafe、quarkus-maven-plugin)
  • BOM の設定(依存関係管理の構成)
  • ビルドプロパティ(Java のバージョン、エンコーディング、surefire-plugin.version)
  • ラッパースクリプト(.mvnw/gradlew の有無、ラッパーのバージョン)

ユーザー固有の内容は無視します(差分として指摘しないでください)。

  • 参照用ファイルにないカスタム依存関係
  • groupId、artifactId、プロジェクト名、バージョン
  • カスタムプロファイル、モジュール、ビルドのカスタマイズ
  • アプリケーション固有の設定

意味のある差分をそれぞれ報告し、参照用プロジェクトの内容と、それが重要な理由を説明します。

参照用タグがリポジトリに存在しない場合(404)、そのバージョン用の参照データがないことをユーザーに伝え、利用可能なタグを確認するよう提案します。

ステップ 3:より新しい Quarkus バージョンを確認する

ユーザーのビルドツールのタグ一覧を取得して、利用可能な最新バージョンを確認します。

https://github.com/quarkusio/code-with-quarkus-compare/tags

または git を使用します:git ls-remote --tags https://github.com/quarkusio/code-with-quarkus-compare.git '{tag_prefix}*'

ユーザーのバージョンを最新のタグと比較します。すでに最新バージョンを使用している場合は、その旨を報告してここで終了します。

ステップ 4:アップグレード分析(古いバージョンの場合)

より新しいバージョンが利用可能な場合は、次の 2 つの情報源を組み合わせます。

4a:更新のドライランを実行する

利用可能なツールを使ってドライランを実行します。

ツールコマンド
Quarkus CLIquarkus update --dry-run
Maven wrapper./mvnw quarkus:update -DrewriteDryRun
Mavenmvn quarkus:update -DrewriteDryRun
Gradle wrapper./gradlew quarkusUpdate --rewriteDryRun
Gradlegradle quarkusUpdate --rewriteDryRun

これにより、ファイルを変更せずに次の内容が生成されます。

  • コンソール出力: BOM の更新提案、エクステンションの同期状況、一致した移行レシピ
  • target/rewrite/rewrite.patch — 更新で適用される実際の差分
  • target/rewrite/rewrite.yaml — OpenRewrite のレシピ全体(バージョンの更新+移行ルール)
  • target/rewrite/rewrite.log — 詳細な実行ログ

target/rewrite/rewrite.patch を読み、更新でどのようなコードレベルの変更が適用されるかを確認します。

4b: ジェネレーターの差分を取得する

GitHub の比較ビューを使って、ユーザーの現在のバージョンと最新バージョンの構造上の差分を取得します。

https://github.com/quarkusio/code-with-quarkus-compare/compare/{current_tag}...{latest_tag}

例:https://github.com/quarkusio/code-with-quarkus-compare/compare/maven-3.15.7...maven-3.32.4

これにより、quarkus update では対応できない可能性のある構造上の変更がわかります。たとえば、次のような変更です。

  • 新しいプラグイン設定(例:<argLine> の追加)
  • Surefire/failsafe のバージョン更新
  • ラッパースクリプトの更新
  • Dockerfile の変更
  • 定型ファイルの追加または削除
4c: 統合レポート

以下をまとめたレポートを提示します。

  1. 現在の状態: ビルドツール、現在の Quarkus バージョン、利用可能な最新バージョン
  2. quarkus update で対応できること: パッチの内容を要約します(バージョン更新、依存関係の名称変更、設定キーの移行)
  3. quarkus update では対応できないこと: ジェネレーターの差分に含まれるうち、パッチには含まれない構造上の変更です。これらには手動での対応が必要です
  4. 推奨される対応:
    • 利用可能なツールを使って、自動移行を適用します:quarkus update --yes、./mvnw quarkus:update -Drewrite、または ./gradlew quarkusUpdate --rewrite
    • ジェネレーターの差分から特定した、残りの構造上の変更を手動で適用します
    • 完全な比較へのリンク:https://github.com/quarkusio/code-with-quarkus-compare/compare/{current_tag}...{latest_tag}

コメント