Mavenプロジェクトでのパッケージ名変更対応手順（＋Eclipse）



### ✅ ① Javaパッケージ名の変更（Eclipse）

前述の通り：

* `com.oldcompany` → `com.newcompany` に Eclipse のリファクタ機能で変更

---

### ✅ ② `pom.xml` の確認と更新

#### `groupId` の変更が必要か？

```xml
<groupId>com.oldcompany</groupId>
```

#### 🔍変更が必要なケース

* **社名変更により、外部公開ライブラリとして整合性が必要な場合**
* アーティファクトを他部署や外部に提供している

#### 🔧変更方法（例）

```xml
<groupId>com.newcompany</groupId>
<artifactId>your-module-name</artifactId>
<version>1.0.0</version>
```

---

### ✅ ③ 依存側（他モジュールや他プロジェクト）も更新

* 他の Maven モジュールやプロジェクトがこのライブラリを参照している場合、`groupId` 変更に合わせて依存関係も修正する必要があります。

```xml
<!-- 旧 -->
<dependency>
  <groupId>com.oldcompany</groupId>
  <artifactId>your-module</artifactId>
</dependency>

<!-- 新 -->
<dependency>
  <groupId>com.newcompany</groupId>
  <artifactId>your-module</artifactId>
</dependency>
```

---

### ✅ ④ `.m2` ローカルリポジトリのクリーンアップ（オプション）

古い `groupId` でキャッシュされているアーティファクトを削除する場合：

```bash
rm -rf ~/.m2/repository/com/oldcompany
```

---

### ✅ ⑤ リビルド＆再インストール

```bash
mvn clean install
```

ビルドが正常に通るか、依存関係に破損がないか確認してください。

---

### ✅ ⑥ Eclipseのプロジェクト再同期（Mavenと連携）

1. `プロジェクト右クリック` → `Maven` → `Update Project`
2. `Force Update of Snapshots/Releases` にチェック
3. `OK` をクリックして同期

---


## ✅ Javaパッケージ・Maven `groupId` 変更チェックリスト

| No. | チェック項目                           | 詳細                                                   | 確認者 | 確認日 | 完了 ✓ |
| --- | -------------------------------- | ---------------------------------------------------- | --- | --- | ---- |
| 1   | Javaのパッケージ名変更                    | Eclipseで `com.oldcompany → com.newcompany` にリファクタリング |     |     |      |
| 2   | import文の確認                       | すべて自動変更されたか確認                                        |     |     |      |
| 3   | `@ComponentScan` 設定              | Spring Boot 設定で旧パッケージがスキャン対象になっていないか                 |     |     |      |
| 4   | `application.yml` / `properties` | パッケージ指定がある場合は更新                                      |     |     |      |
| 5   | `pom.xml` の `groupId`            | `com.oldcompany → com.newcompany` に更新                |     |     |      |
| 6   | 他モジュールの `dependency`             | `groupId` の変更に追随したか                                  |     |     |      |
| 7   | `.m2` キャッシュの削除                   | 古い `groupId` のアーティファクト削除                             |     |     |      |
| 8   | CI/CD スクリプト確認                    | Jenkinsfile、GitHub Actionsなどに影響ないか                   |     |     |      |
| 9   | README / ドキュメントの更新               | モジュール名、`groupId` の記述の修正                              |     |     |      |
| 10  | テストの実行                           | ビルド・単体テスト・統合テスト成功                                    |     |     |      |

---

## ❗ `groupId` 変更後に失敗しやすいポイント FAQ

| 問題                                 | 原因と対処法                                                                                           |
| ---------------------------------- | ------------------------------------------------------------------------------------------------ |
| ✅ **依存関係が見つからない**                  | 他のモジュールやプロジェクトの `pom.xml` に古い `groupId` が残っている。依存元の `groupId` を正しく修正し、`mvn clean install` で再ビルド。 |
| ✅ **`NoClassDefFoundError`**       | 一部の `.class` が古いパッケージのまま残っている可能性。`target/` を削除し再ビルド。                                             |
| ✅ **`ComponentScan` でBeanが登録されない** | `@ComponentScan` のベースパッケージに旧パッケージ名を指定している。新しいパッケージを追加する。                                         |
| ✅ **CIでビルド失敗**                     | `groupId` がCIスクリプトやビルドパラメータに含まれていた。YAML/Jenkinsfileを確認し修正。                                       |
| ✅ **Mavenリリースプラグインが失敗する**          | `groupId` 変更後にSCMの設定（`<scm>`）が古いままの場合。GitのURLやタグルールを見直す。                                         |
| ✅ **IDEにエラーが残る**                   | Eclipseや IntelliJ でキャッシュが残ることがある。プロジェクトを「クリーン＆再ビルド」、IDEの再起動も試す。                                  |