111-java-maven-dependencies について
Java Mavenプロジェクトに、選択したコード品質・ドメインモデリング用依存関係を追加する対話型スキルです。事前にプロジェクトを検証し、選択されたものだけを適用します。
主な機能
- 01変更前のMaven検証
- 02質問形式で依存関係を選択
- 03JSpecifyとNullAwayの設定
- 04VAVRによる関数型プログラミング
- 05ArchUnitとJavaMoneyの追加
活用シーン
- 01Nullness注釈とコンパイル時チェックの追加
- 02関数型の型と不変コレクションの導入
- 03テストでのアーキテクチャ規則の適用
- 04Javaでの金額と通貨のモデリング
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jabrena/ plinth --skill 111-java-maven-dependenciesインストール後、Claude Code で/111-java-maven-dependenciesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/111-java-maven-dependencies-archunit.md111-java-maven-dependencies-vavr.md111-java-maven-dependencies-javamoney.md111-java-maven-dependencies-jspecify.md詳細
コード品質向上のための Maven 依存関係の追加
相談形式で質問を重ねながら、コード品質、安全性、ドメインモデリングを向上させる必須の Maven 依存関係を追加します。これは対話型の SKILL です。
この Skill では何を扱いますか?
- JSpecify:(nullness アノテーション、
providedスコープ) - Error Prone + NullAway:(コンパイル時の null チェックによる静的解析の強化)
- VAVR:
Try/Eitherを使った関数型プログラミングと不変コレクション - ArchUnit:(アーキテクチャルールの適用、
testスコープ) - JavaMoney:JSR 354 および Moneta による Money および Currency API のサポート
制約
Maven 依存関係を追加する前に、プロジェクトが有効な状態であることを確認してください。相談形式で質問を重ねるフローを使用し、ユーザーが選択したものだけを追加してください。
- 必須:変更を加える前に
./mvnw validateまたはmvn validateを実行してください - 安全性:検証に失敗した場合は停止し、問題を修正するようユーザーに依頼してください。問題が解決するまで先に進まないでください
- 依存関係のリファレンスを読む前に:まず、この SKILL.md に組み込まれた質問フローを実行してください。依存関係の選択に関する質問をまとめて一度に行い、その後は選択された項目に応じて必要な追加質問だけをしてください。ユーザーの回答で選択された依存関係のリファレンスのみを読み、相談形式の表現を使ってトレードオフを提示し、実装を開始する前にユーザーの回答を待ってください
このスキルを使用する場面
- Maven 依存関係を追加するとき
- JSpecify の nullness 依存関係を追加するとき
- Error Prone NullAway の依存関係を追加するとき
- VAVR の関数型依存関係を追加するとき
- ArchUnit のアーキテクチャテスト依存関係を追加するとき
- JavaMoney の依存関係を追加するとき
ワークフロー
- 変更前にプロジェクトを検証する
./mvnw validate または mvn validate を実行し、検証に失敗した場合は中止します。
- 参照を読む前に依存関係の評価に関する質問をする
依存関係の実装に関する参照を読む前に、この XML に含まれる質問フローを実行します。まず依存関係の選択に関する質問をまとめて行い、ユーザーの回答を待ってから、選択された依存関係ファミリーを記録して次に進みます。条件付きの追加質問は、選択された依存関係に必要な場合にのみ行います。
質問 1:追加するコード品質関連の依存関係を選択してください。
選択肢:
- JSpecify(最新の nullness アノテーション、
providedスコープ。新規プロジェクトに推奨) - Error Prone + NullAway(強化されたコンパイラー解析とコンパイル時の nullness チェック。JSpecify が必要)
- VAVR(Try/Either と不変コレクションによる関数型プログラミングのサポート)
- ArchUnit(JUnit 5 を使用したアーキテクチャテスト、
testスコープ) - JavaMoney(JSR 354 と Moneta による Money および Currency API のサポート)
- なし
- その他(指定してください)
推奨:null 安全性アノテーションを強化するには、JSpecify を選択してください。より強力なコンパイル時解析が必要な場合は、Error Prone + NullAway を追加してください。関数型プログラミングのパターンがプロジェクトに役立つ場合にのみ、VAVR を追加してください。アーキテクチャのガバナンスを自動化する場合は、ArchUnit を追加してください。明示的な金額、通貨、書式設定、換算、または精度を損なわない金額計算がドメインで必要な場合は、JavaMoney を追加してください。
選択に関する注意事項:
- Error Prone + NullAway を選択した場合、プロジェクトですでに同等の nullness アノテーションが設定されていない限り、JSpecify も選択してください。
- 「なし」を選択した場合、依存関係ファミリーに関する参照は追加しないでください。
質問 2(条件付き):プロジェクトのメインパッケージ名は何ですか?
注:この質問は、Error Prone + NullAway を選択した場合にのみ行います。
NullAway がコードを解析できるよう設定するために必要です。たとえば、クラスが com.example.myproject にある場合は、com.example.myproject と入力してください。
形式:ドット区切り表記を使用します(例:com.example.myproject または org.mycompany.myapp)
例:com.example.myproject
該当する質問への回答がすべてそろったら、選択内容を確認し、参照先を対応付けます。
- JSpecify を選択した場合は、
references/111-java-maven-dependencies-jspecify.mdを読みます。 - 強化されたコンパイラー解析を選択した場合は、
references/111-java-maven-dependencies-jspecify.mdの Error Prone + NullAway セクションを使用します。 - VAVR を選択した場合は、
references/111-java-maven-dependencies-vavr.mdを読みます。 - ArchUnit を選択した場合は、
references/111-java-maven-dependencies-archunit.mdを読みます。 - JavaMoney を選択した場合は、
references/111-java-maven-dependencies-javamoney.mdを読みます。 - 選択されていない依存関係ファミリーの参照は読んだり適用したりしないでください。
- 選択した参照を読み、選択した依存関係のみを追加する
選択した依存関係ファミリーの参照のみを読み、その後、既存の pom.xml の構造を維持しながら、ユーザーが選択した依存関係、プロパティ、スコープ、プラグイン設定、サポートファイルのみを実装します。
- トレードオフと次の確認事項を報告する
追加した内容とその理由、および推奨される追加の検証やツールの調整をまとめます。
参照
詳細なガイダンス、例、制約については、次を参照してください。