MavenプロジェクトのコマンドスキャンではMavenの dependencyTree タスクによって依存関係を抽出した出力テキストをスキャンします。
スキャンを行うには、コマンドライン上でスキャン対象のMavenプロジェクトのルートディレクトリに移動し、以下を実行してください。
mvn --projects <Maven のサブプロジェクトの groupId:artifactId> dependency:tree -B -Dverbose=true | PROJECT_GROUP_KEY=<yamory 上のプロジェクトグループ識別キー> YAMORY_API_KEY=xxxxxxxxxxxxxxxxx YAMORY_OPEN_SYSTEM=true YAMORY_DISTRIBUTED=false bash -c "$(curl -sSf -L <https://yamory/script/...>)"
上記の < > 内の箇所は、以下の内容に適宜置き換えてください。
<Maven のサブプロジェクト名>: スキャン対象のMavenのサブプロジェクト名を groupId:artifactId の形式で入力します。単一プロジェクトの場合は、--projects <...> の箇所を削除してください。
サブプロジェクトの情報は、サブモジュールのディレクトリ内のpom.xmlの<groupId>タグと<artifactId>タグに記載されています。
サブモジュール場所は、Mavenプロジェクトのルートディレクトリに含まれるpom.xmlのタグに記載されています。
<yamory 上のプロジェクトグループ識別キー>:サービス名称などを設定してください(例:yamory)(半角英数記号のみ、半角スペースは入力不可)。
<https://yamory/script/...>: サイドバーの「アプリライブラリ」>「スキャン」を開き、「新しいプロジェクトをスキャン+」ボタンを押して出てくる案内にしたがって入力を進め、最後に表示されるスキャンコマンドのURLに置き換えてください。
<aside> ⚠️
-Dverbose=true オプションは変更しないでください。
-Dverbose=false に設定すると、一部のライブラリがスキャン対象に入らないことがあるため、スキャン時には必ず -Dverbose=true を使用してください。
詳細につきましては下記のFAQをご参照ください。
Maven プロジェクトのスキャン時に -Dverbose=true をつけるとスキャンが失敗してしまいます - yamory
</aside>
スキャン対象のスコープは、compile、provided、runtime、 system です。
yamoryでは、アプリケーションに含まれ、かつ実環境で脆弱性としてリスクになり得る脆弱性を検知対象としています。よって、testスコープはスキャン対象外としています。