# 🚀 インストールガイド

ApexBlueprint の導入経路は2つあります。どちらも入るソースは同じです。経路の比較 (デプロイ時のテスト実行やカバレッジ計算の違い) は [Installing Apex Stem](/ja/apex-stem/docs/apex-stem-installation) にまとめています。

| 経路 | 向いている場面 | 事前準備 |
|---|---|---|
| **Unlocked Package (推奨)** | 新規プロジェクト、本番組織 | Salesforce CLI と組織へのログインだけ |
| **Git Submodule** | submodule 運用中の既存プロジェクト、コントリビュータ | [事前準備](/ja/apex-stem/docs/apex-blueprint-prerequisites) をすべて (make 含む) |


## 📦 Unlocked Package で導入する (推奨)

[事前準備](/ja/apex-stem/docs/apex-blueprint-prerequisites) のうち「Salesforce CLI のセットアップ」と「対象組織の確認」まで済んでいれば、コマンド1つで入ります。make のセットアップは不要です。

```bash
$ sf package install -p 04tgK000000HaIPQA0 -o <対象組織> -w 10
```

ブラウザからインストールする場合は `https://login.salesforce.com/packaging/installPackage.apexp?p0=04tgK000000HaIPQA0` を開きます (Sandbox は `test.salesforce.com` に読み替え)。

現在のバージョンは **v2.0.1** です。過去バージョンの install ID は [GitHub Releases](https://github.com/krile136/ApexBlueprint/releases) に載っています。

パッケージとして導入すると、ApexBlueprint 同梱のテストは **`RunLocalTests` の対象外**になり、コードも**組織のカバレッジ計算から除外**されます。ApexBlueprint のテストは実レコードを作成するため組織の入力規則や必須項目と衝突しやすいのですが、パッケージ経路ならこの失敗クラスが丸ごと消えます。

### 更新

新しいバージョンの install ID で同じコマンドを実行するだけです。インストール済みのパッケージが上書き更新されます。組織に入っているバージョンは `sf package installed list -o <対象組織>` で確認できます。


## 📥 Git Submodule で導入する

### パッケージの取得 (初回のみ)

```bash
$ cd force-app/main/default/classes
$ git submodule add https://github.com/krile136/ApexBlueprint.git ApexBlueprint
```

これでリポジトリに `ApexBlueprint` ディレクトリが追加され、ソース管理に組み込まれます。

### 組織へのデプロイ

[事前準備](/ja/apex-stem/docs/apex-blueprint-prerequisites) をすべて済ませた上で、取得したクラスをデプロイします。

```bash
$ make install
```

`make install` は内部で Salesforce CLI のデプロイコマンドを呼び出します。

Submodule 経路ではテストクラスがローカルテストとして実行され、**カバレッジ要件 75% を満たすように構成**されています。ただし、**組織側の設定や無効化された標準項目が原因でテストが失敗する場合**は、`*_T.cls` テストクラスを適宜調整するか、Unlocked Package 経路への切り替えを検討してください。

### 更新

プロジェクトのルートから以下のコマンドを実行します。

```bash
$ cd force-app/main/default/classes/ApexBlueprint
$ git pull
$ make install
```

:::warning
Submodule は親リポジトリがどのコミットを参照しているかという情報 (ポインタ) を保持しています。本番環境で一貫性を保つには、`git submodule update --remote` で参照を最新版に自動更新し、親リポジトリ側でもコミットすることをおすすめします。
:::


## 🔗 ガイドへ戻る

← [ApexBlueprint ガイドへ戻る](/ja/apex-stem/docs/apex-blueprint-guide)
