第二世代管理パッケージ間の連動関係の作成
モノリシックなパッケージ開発を避けるため、類似の機能とコンポーネントをグループ化した小型のモジュール式パッケージの開発を計画します。次に、これらのパッケージ間の連動関係を定義します。パッケージの連動関係とは、あるパッケージ内のメタデータと別のパッケージ内のメタデータ間の依存関係のことです。たとえば、連動関係を定義すると、別のパッケージ内のコンポーネントとメタデータを使用して、基本パッケージの機能を拡張できます。
管理 2GP パッケージの連動関係の指定方法
同じ Dev Hub に関連付けられている管理パッケージ間の連動関係を指定するには、パッケージバージョンの別名か、パッケージ名とバージョン番号の組み合わせのいずれかを使用します。
例 1:
1"dependencies": [
2 {
3 "package": "MyPackageName@0.1.0.1"
4 }
5]例 2:
1"dependencies": [
2 {
3 "package": "MyPackageName",
4 "versionNumber": "0.1.0.LATEST"
5 }
6]Dev Hub に関連付けられていない管理パッケージの連動関係を指定する手順は、次のとおりです。
1"dependencies": [
2 {
3 "package": "OtherOrgPackage@1.2.0"
4 }
5]パッケージの別名ではなくパッケージ ID で連動関係を示すには、次の ID を使用します。
- パッケージ ID と一緒にバージョン番号を指定する場合は 0Ho ID
- パッケージバージョン ID のみを指定する場合は 04t ID
複数のパッケージ連動関係の指定
パッケージに複数の連動関係がある場合、インストールの順序でパッケージのカンマ区切りのリストを指定します。
たとえば、あるパッケージがパッケージ Expense Manager - Util に連動し、このパッケージがパッケージ External Apex Library に連動する場合、パッケージの連動関係は次のようになります。
1"dependencies": [
2 {
3 "package" : "External Apex Library - 1.0.0.4"
4
5 },
6 {
7 "package": "Expense Manager - Util",
8 "versionNumber": "4.7.0.LATEST"
9
10 }
11]サポートされる連動関係の種別
- 循環連動関係
- パッケージ間の循環連動関係はサポートされません。
- 循環連動関係が生じるのは、pkgC が pkgB に連動し、pkgB が pkgA に連動し、pkgA が pkgC に連動する場合です。
- 複数レベルの連動関係
- 複数レベルのパッケージ連動関係はサポートされています。
- 複数レベルの連動関係が生じるのは、pkgC が pkgB に連動し、pkgB が pkgA に連動する場合です。
- sfdx-project.json ファイルの複数レベルの連動関係をパッケージのインストール順にリストします。この例の場合、最初に pkgA をインストールし、次に pkgB をインストールし、その後に pkgC をインストールする必要があります。
-
1{ 2 "packageDirectories": [ 3 { 4 "path": "pkgA-wsp", 5 "default": true, 6 "package": "pkgA", 7 "versionName": "ver 0.9", 8 "versionNumber": "0.9.0.NEXT", 9 "ancestorVersion": "0.7.0.1" 10 }, 11 { 12 "path": "pkgB-wsp", 13 "default": false, 14 "package": "pkgB", 15 "versionName": "ver 0.3", 16 "versionNumber": "0.3.0.NEXT", 17 "dependencies": [ 18 { 19 "package": "pkgA@0.9.0.LATEST" 20 } 21 ] 22 }, 23 { 24 "path": "pkgC-wsp", 25 "default": false, 26 "package": "pkgC", 27 "versionName": "ver 0.1", 28 "versionNumber": "0.1.0.NEXT", 29 "dependencies": [ 30 { 31 "package": "pkgA@0.9.0.LATEST" 32 }, 33 { 34 "package": "pkgB@0.3.0.LATEST" 35 } 36 37 ] 38 } 39 40 ], 41 42} - 指定されたパッケージバージョン番号もパッケージ連動関係のインストールに影響を与えます。pkgB をインストールする前に、最初に pkgA バージョン 0.9 以降をインストールする必要があります。この条件が満たされない場合は、pkgB のインストールが失敗します。