1.7. Camel Spring Boot にパッチを適用する
新しい patch-maven-plugin メカニズムを使用すると、Red Hat Camel Spring Boot アプリケーションにパッチを適用できます。このメカニズムを使用すると、さまざまな Red Hat アプリケーション BOMS によって提供される個々のバージョン (camel-spring-boot-bom など) を変更できます。
patch-maven-plugin の目的は、Camel on Spring Boot BOM にリストされている依存関係のバージョンをアプリケーションに適用するパッチメタデータで指定されているバージョンに更新することです。
patch-maven-plugin は次の操作を実行します。
- 現在の Red Hat アプリケーション BOM に関連するパッチメタデータを取得します。
- BOM からインポートされた <dependencyManagement> にバージョンの変更を適用します。
patch-maven-plugin がメタデータを取得したら、プラグインが宣言されたプロジェクトの管理された依存関係および直接の依存関係すべてに対して繰り返し処理を行い、CVE/patch メタデータを使用して、一致する依存関係バージョンを置き換えます。バージョンが置き換えられたら、Maven ビルドが続行され、標準の Maven プロジェクトのステージに進みます。
手順
以下の手順では、アプリケーションにパッチを適用する方法を説明します。
patch-maven-pluginをプロジェクトのpom.xmlファイルに追加します。patch-maven-pluginのバージョンは、Spring Boot BOM の Camel のバージョンと同じである必要があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow mvn clean apply、mvn validate、またはmvn dependency:treeコマンドのいずれかを実行すると、プラグインはプロジェクトモジュールを検索して、モジュールが Red Hat Camel Spring Boot BOM を使用しているかどうかを確認します。サポートされている BOM は次のとおりです。-
com.redhat.camel.springboot.platform:camel- spring -boot-bom: Camel Spring Boot BOM 用
-
プラグインは、上記の BOM を見つけられない場合、次のメッセージを表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 正しい BOM が使用されている場合、パッチのメタデータは見つかりますが、パッチはありません。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow patch-maven-pluginは、この Maven メタデータを取得しようとします。Camel Spring Boot BOM を含むプロジェクトの場合、
com.redhat.camel.springboot.platform:redhat-camel-spring-boot-patch-metadata/maven-metadata.xmlが解決されます。この XML データは、com.redhat.camel.springboot.platform:redhat-camel-spring-boot-patch-metadata:RELEASE座標を持つアーティファクトのメタデータです。Maven によって生成されたメタデータの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
patch-maven-pluginは、メタデータを解析して、現在のプロジェクトに適用するバージョンを選択します。このアクションは特定のバージョンの Spring Boot BOM で Camel を使用する Maven プロジェクトのみで可能です。バージョン範囲以降に一致するメタデータのみが適用され、最新バージョンのメタデータのみが取得されます。 patch-maven-pluginは、前の手順で見つかったgroupId、artifactId、およびversionによって識別されるパッチメタデータをダウンロードするためのリモート Maven リポジトリーのリストを収集します。これらの Maven リポジトリーは、アクティブなプロファイル内のプロジェクトの<repositories>要素にリストされ、またsettings.xmlファイルのリポジトリーにもリストされます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow メタデータがリモートリポジトリー、ローカルリポジトリー、または ZIP ファイルからであるかどうかに関わらず、
patch-maven-pluginによって分析されます。フェッチされたメタデータには CVE の一覧が含まれ、各 CVE には、影響を受ける Maven アーティファクトのリスト (glob パターンおよびバージョン範囲で指定) と、指定の CVE の修正が含まれるバージョンがあります。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 最後に、現在のプロジェクトの管理された依存関係に繰り返し処理が行われるときに、パッチメタデータに指定された修正リストが参照されます。一致するこれらの依存関係 (および管理された依存関係) は、固定バージョンに変更されます。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
パッチのスキップ
特定のパッチをプロジェクトに適用したくない場合、patch-maven-plugin は skip オプションを提供します。patch-maven-plugin をプロジェクトの pom.xml ファイルにすでに追加しており、バージョンを変更したくない場合は、次のいずれかの方法を使用してパッチをスキップできます。
-
以下のように、プロジェクトの
pom.xmlファイルに skip オプションを追加します。
-
または、以下のように
mvnコマンドの実行時に-DskipPatchオプションを使用します。
上記の出力にあるように、patch-maven-plugin は呼び出されず、パッチはアプリケーションに適用されません。