第一世代管理パッケージと第二世代管理パッケージの比較
第一世代管理パッケージ (管理 1GP) に慣れていて、第一世代管理パッケージと第二世代管理パッケージ (管理 2GP) の違いについて知りたい方は、以下でこれらの違いについて読んでください。
| 管理 1GP パッケージ | 管理 2GP パッケージ |
|---|---|
| パッケージ組織がパッケージのメタデータの信頼できる情報源になります。 | バージョン管理システムが信頼できる情報源 (ソース駆動型システム) になります。 管理 1GP とは異なり、管理 2GP ではパッケージ組織やパッチ組織は使用しません。 |
| パッケージ組織がパッケージを所有します。パッケージのメタデータは、パッケージ組織に存在します。 | Dev Hub がパッケージを所有しますが、Dev Hub にはパッケージのメタデータは含まれません。 パートナービジネス組織 (PBO) で Dev Hub を有効化することをお勧めします。 |
| パッケージ組織は、管理パッケージを 1 つだけ所有できます。 | Dev Hub は、1 つまたは複数のパッケージを所有できます。 |
| 管理パッケージの名前空間は、パッケージ組織で作成します。 | 管理パッケージの名前空間は、名前空間組織で作成されて Dev Hub にリンクされます。そして、複数の名前空間を単一の Dev Hub に関連付けることができます。 名前空間は、Salesforce CLI コマンドの force:package:create の実行時に管理 2GP にリンクされます。名前空間は、sfdx-project.json ファイルで指定する必要があります。 詳細は、「第二世代管理パッケージの名前空間」を参照してください。 |
| 名前空間は、1 つのパッケージにしか関連付けることはできません。 | 複数のパッケージで同じ名前空間を使用できます。 |
| パッケージ間でコードを共有する手段は global Apex のみです。 | 公開 Apex クラスおよびメソッドで @namespaceAccessible アノテーションを使用することで、同じ名前空間を使用している複数のパッケージでコードを共有できます。 |
| パッケージの作成やアンインストールなど、一部のパッケージ操作は自動化できません。 | Salesforce CLI を使用して、すべてのパッケージ操作を自動化できます。 |
| パッケージのバージョン管理は直線的です。 | パッケージは柔軟なバージョン管理か可能で、不要なパッケージバージョンは破棄できます。この柔軟なバージョン管理では、ブランチを使用してパッケージを並行開発することが可能です。 |
| パッチ場合は、パッチ組織という特別な組織でのみ作成できます。 | パッチバージョンは、Salesforce CLI を使用して作成されます。バージョン管理システムが信頼できる情報源となり、パッチ組織はありません。 |
これらの違いはありますが、管理 1GP と 2GP のパッケージには多くの共通点があります。メタデータをパッケージに関連付ける際の主要なパッケージ概念は同じです。そして、登録者組織でインストール/アンインストールできるパッケージとパッチバージョンの反復と作成はどちらでも可能です。どちらの管理パッケージ種別でも、パッケージを AppExchange セキュリティレビューに送り、パッケージを AppExchange に登録できます。また、どちらの管理パッケージ種別でも、ライセンス管理アプリケーション、登録者サポートコンソール、機能管理アプリケーションを使用できます。