✅ Vol.20：🔄 pom.xml の依存ライブラリの自動解決設定

### 🎯 目的
Struts2ベースの掲示板アプリ（v2）で必要なライブラリ群を pom.xml に定義し、Eclipse 上で自動的にライブラリを取得・反映させる準備を行う。

---

### 📘 使用ライブラリ一覧（Vol.18で定義済み）

以下のライブラリ群は、***Vol.18「掲示板アプリ v2 の動作環境と使用ライブラリの整理」*** にて正式に定義・整理済みです。
本 Vol.20 では、これらを `pom.xml` の `<dependencies>` セクションに明記し、プロジェクトに組み込みます。


| 使用目的        | groupId                    | artifactId          | version | scope      |
| ----------- | -------------------------- | ------------------- | ------- | ---------- |
| DBコネクションプール | `com.zaxxer`               | `HikariCP`          | 3.4.5   |            |
| Struts2本体   | `org.apache.struts`        | `struts2-core`      | 2.5.26  |            |
| ロギングAPI     | `org.apache.logging.log4j` | `log4j-api`         | 2.14.1  |            |
| ロギング実装      | `org.apache.logging.log4j` | `log4j-core`        | 2.14.1  |            |
| Servlet API | `javax.servlet`            | `javax.servlet-api` | 4.0.1   | `provided` |
| JDBCドライバ    | `com.mysql`                | `mysql-connector-j` | 8.0.32  |            |
| Struts内部依存  | `ognl`                     | `ognl`              | 3.1.29  |            |
| XMLパーサーAPI  | `xmlpull`                  | `xmlpull`           | 1.1.3.1 |            |
| XMLパーサー実装   | `xpp3`                     | `xpp3_min`          | 1.1.4c  |            |

---

### 📄 `pom.xml` の `<dependencies>` セクション（確定版）
以下は本プロジェクト（掲示板アプリ v2）における正式な依存関係の定義です。
`<project>` タグ内の `<dependencies>` セクションに以下を貼り付けてください。

```xml
<dependencies>
  <!-- Struts2 -->
  <dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>2.5.26</version>
  </dependency>

  <!-- Logging: Log4j2 -->
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.14.1</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.14.1</version>
  </dependency>

  <!-- JDBC + MySQL -->
  <dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>3.4.5</version>
  </dependency>
  <dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <version>8.0.32</version>
  </dependency>

  <!-- Servlet API（providedスコープ） -->
  <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
  </dependency>

  <!-- Struts2 依存 -->
  <dependency>
    <groupId>ognl</groupId>
    <artifactId>ognl</artifactId>
    <version>3.1.29</version>
  </dependency>
  <dependency>
    <groupId>xmlpull</groupId>
    <artifactId>xmlpull</artifactId>
    <version>1.1.3.1</version>
  </dependency>
  <dependency>
    <groupId>xpp3</groupId>
    <artifactId>xpp3_min</artifactId>
    <version>1.1.4c</version>
  </dependency>
</dependencies>

```

---

### 🔧 Eclipseでの依存解決操作（Maven → Update Project）
### 手順：

- ①Eclipseの「プロジェクト(P)」→ 「クリーン」をクリックして、プロジェクトをクリーン実効してください。

![Mavenの設定①.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4091065/9cb80110-c9ac-4298-975c-bafcb71f6e54.png)

- ② ①を実効後、「Bullteinboardv2」プロジェクトを右クリック → 「実行(R)」→ 「3 Maven clean」を実効してください。

![Mavenの設定②.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4091065/aa3615bb-e8d3-4d22-bded-b3ab66cffe0a.png)

- ③ ②を実効後、「Bullteinboardv2」プロジェクトを右クリック → 「実行(R)」→ 「5 Maven install」を実効してください。

![Mavenの設定③.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4091065/1b4ebf0a-05e7-4a00-a6d0-353223ab8703.png)

④ ③の操作後、「ビューの表示」→「パッケージ・エクスプローラー」を選択し、「開く」をクリックしてください。

![Mavenの設定⑤.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4091065/d27b80b7-34a7-4e39-ac8a-d53507f4302e.png)


⑤ 「パッケージ・エクスプローラー」が開くので、「Maven依存関係」の階層を開き、pom.xmlに追加したライブラリが自動で追加されていることを確認してください。

![Mavenの設定⑥.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4091065/0feefd2b-6a16-4779-afa0-ee79b7076fb5.png)



---

### ✅ 動作確認ポイント

- ライブラリが `Maven Dependencies` に追加されている

- `Problems` ビューにビルドエラーがない

- クラス補完（例：`Logger`, `HikariDataSource` など）が有効になっている

---

### 📌 備考
- Javaバージョンが 11 未満の場合、Struts2 2.5.x 系でのビルド時に警告が出る可能性があります（実行は可能）

- Java 11 以上を使用する場合、`pom.xml` の `<properties>` セクションでバージョンを指定しておくとよいでしょう（必要であれば後述します）

---

### ✅今後の予定

| Vol.       | タイトル案                          | 内容                                                                   |
| ---------- | ------------------------------ | -------------------------------------------------------------------- |
| **Vol.20** | 🔄 pom.xmlの依存ライブラリの自動解決設定      | EclipseのMavenプロジェクトでpom.xmlの依存関係を自動解決させる方法（Maven → Update Projectなど） |
| **Vol.21** | 共通基底クラス `BaseAction` の作成       | Struts2 のすべてのアクションで共通化される処理（セッション取得・ログ出力など）をまとめる                     |
| **Vol.22** | ログイン機能①：web.xmlの作成とStruts2起動確認 | `web.xml` の役割、Struts2フィルタの設定、起点としての重要性と動作確認                          |
| **Vol.23** | ログイン機能②：JSP画面の作成（ログインフォーム）     | `/WEB-INF/jsp/login.jsp` の作成、フォームタグの使用、Struts連携確認                    |
| **Vol.24** | ログイン機能③：struts.xmlのルーティング設定    | `struts.xml` におけるアクションマッピングの基本とログイン機能の設定                             |
| **Vol.25** | ログイン機能④：LoginActionクラスの作成      | ユーザーID・パスワードの受け取り／認証処理との接続／BaseAction継承の活用                           |
| **Vol.26** | ログイン機能⑤：DB接続クラスとDAO層の作成        | JDBCもしくはMyBatisの設定／`UserDao`の骨組み／テスト接続確認                             |
| **Vol.27** | ログイン機能⑥：DB準備（テーブル作成）           | ログイン用のユーザーテーブルを作成し、初期データ挿入まで                                         |
| **Vol.28** | ログイン機能⑦：ユーザー認証処理の実装            | DAOで取得したユーザー情報を用いてログイン成功・失敗の分岐を作成                                    |
| **Vol.29** | ログイン機能⑧：管理者ポータル画面の作成と遷移        | ログイン成功後に「管理者ポータル画面」に遷移／各管理機能（掲示板・ユーザー・スレッド・投稿）へのリンク設置                |
| **Vol.30** | 管理機能①：掲示板管理画面の一覧表示の実装          | 既存の掲示板データを管理者画面に一覧表示する／DAO・JSP連携の確認                                  |
| **Vol.31** | 管理機能②：掲示板作成機能の実装               | 掲示板作成フォームの作成／作成後に一覧に戻る処理の流れ／バリデーション準備                                |
| **Vol.32** | 管理機能③：掲示板編集機能の実装               | 編集対象掲示板の選択／情報の取得と更新／セッション引き継ぎとJSP反映                                  |
| **Vol.33** | 管理機能④：掲示板削除機能の実装               | 削除ボタンの配置／アクション・DAOによる物理削除処理と画面更新                                     |
| **Vol.34** | 管理機能⑤：ユーザー管理画面の一覧表示の実装         | 登録ユーザーを一覧表示／ユーザー編集・削除への遷移ボタン設置                                       |
| **Vol.35** | 管理機能⑥：ユーザー作成機能の実装              | 新規ユーザー追加フォーム／パスワード・権限などのバリデーション                                      |
| **Vol.36** | 管理機能⑦：ユーザー編集・削除機能の実装           | ユーザー情報の更新／削除による整合性チェックと処理                                            |
| **Vol.37** | 管理機能⑧：スレッド管理画面の一覧表示と削除機能       | 掲示板ごとのスレッド表示と削除（掲示板IDでの紐づけ確認）                                        |
| **Vol.38** | 管理機能⑨：投稿管理画面の一覧表示と削除機能         | 各スレッドに紐づく投稿を一覧で表示／不適切投稿の削除処理                                         |
| **Vol.39** | ログイン機能⑨：JSP表示にユーザー名を連携         | セッションから取得し、画面上にユーザー名を表示する方法の実装                                       |
| **Vol.40** | ログイン機能⑩：軽微なユニットテストとデバッグ活用      | EclipseのJUnit／デバッグビューの使い方／ログ確認方法                                     |
| **Vol.41** | 今後の拡張方針：一般ユーザーポータルと投稿機能の導入へ    | 一般ユーザー向け機能へと発展／掲示板閲覧→スレッド作成→投稿までの基本設計                                |


---