パッケージのプロジェクト設定ファイル
プロジェクト設定ファイルは、プロジェクトとパッケージの概要の設計図です。ファイルの設定によって、パッケージ属性とパッケージ内容が決まります。
以下は、プロジェクト定義ファイルに指定可能なパラメータです。
| 名前 | 必須かどうか | 指定がない場合のデフォルト |
|---|---|---|
| path | はい | パスを指定しない場合、パッケージの作成時に Salesforce CLI でプレースホルダが使用されます。 |
| default | いいえ | true 複数のパスを指定した場合、デフォルトパスにこのパラメータを追加して、どれがデフォルトパッケージディレクトリかを示します。 |
| package | はい | パッケージを作成するときに指定したパッケージ名。 |
| versionName | いいえ | 指定しない場合、CLI ではバージョン名として versionNumber が使用されます。 |
| versionDescription | いいえ | なし。 |
| versionNumber | はい | なし。バージョン番号の書式は major.minor.patch.build です。たとえば、1.2.1.8 です。 登録者は、登録者組織に以前にインストールされた上位がアップグレードに含まれている場合にのみ、管理パッケージをアップグレードします。管理パッケージバージョンを作成するときに、ancestorID または ancestorVersion を指定してください。 |
| dependencies | いいえ | なし。他のパッケージへの連動関係を指定します。 同じ Dev Hub 内の 2GP の連動関係を指定するには、パッケージバージョンの別名か、パッケージ名とバージョン番号の組み合わせのいずれかを使用します。
Dev Hub 外の 2GP の連動関係、および現在の Dev Hub 内外の第一世代パッケージの連動関係を指定するには、次の設定を使用します。
パッケージの別名ではなくパッケージ ID で連動関係を示すには、次の ID を使用します。
パッケージに複数の連動関係がある場合、インストールの順序でパッケージのカンマ区切りのリストを指定します。たとえば、あるパッケージがパッケージ Expense Manager - Util に連動し、このパッケージがパッケージ External Apex Library に連動する場合、パッケージの連動関係は次のようになります。
ロック解除済みパッケージから連動関係情報を抽出する方法についての詳細は、「ロック解除済みパッケージからの連動関係情報の抽出」を参照してください。 |
| ancestorID ancestorVersion |
いいえ | なし。作成しているバージョンの直接の親である上位を使用します。ancestorID または ancestorVersion を指定できます。 指定するパッケージバージョン ID は「05i」で始まります。 形式 major.minor.patch.build を使用して上位バージョンを指定することもできます。 |
| definitionFile | いいえ | パッケージのメタデータに必要な機能や組織設定を指定するスクラッチ組織定義などの外部 .json ファイルを参照します。 |
| features | いいえ | なし。Salesforce DX でサポートされるすべての機能を使用できます。スクラッチ組織定義などの外部 .json ファイルで機能を指定することをお勧めします。 |
| orgPreferences | いいえ | なし。Salesforce DX でサポートされるすべての Salesforce 組織設定を使用できます (Chatter やコミュニティなど)。スクラッチ組織定義などの外部 .json ファイルで組織設定を指定することをお勧めします。 |
| packageAliases | はい | このファイルは、パッケージまたはパッケージバージョンの作成時に Salesforce CLI によって別名で更新されます。既存のパッケージまたはパッケージバージョンのこのセクションを手動で更新することもできます。CLI の force:package コマンドを実行するときにわかりづらいパッケージ ID の代わりに別名を使用できます。 |
Salesforce DX プロジェクト定義ファイルは、JSON ファイルで、プロジェクトのルートディレクトリにあります。packageDirectories のパラメータは次のようになります。
1{
2 "namespace": "",
3 "sfdcLoginUrl": "https://login.salesforce.com",
4 "sourceApiVersion": "43.0",
5 "packageDirectories": [
6 {
7 "path": "util",
8 "default": true,
9 "package": "Expense Manager - Util",
10 "versionName": "Spring ‘18",
11 "versionDescription": "Welcome to Spring 2018 Release of Expense Manager Util Package",
12 "versionNumber": "4.7.0.NEXT",
13 "definitionFile": "config/scratch-org-def.json"
14 },
15 {
16 "path": "exp-core",
17 "default": false,
18 "package": "Expense Manager",
19 "versionName": "v 3.2",
20 "versionDescription": "Spring 2018 Release",
21 "versionNumber": "3.2.0.NEXT",
22 "definitionFile": "config/scratch-org-def.json",
23 "dependencies": [
24 {
25 "package": "Expense Manager - Util",
26 "versionNumber": "4.7.0.LATEST"
27
28 },
29 {
30 "package" : "External Apex Library - 1.0.0.4"
31 }
32 ]
33 }
34 ],
35 "packageAliases": {
36 "Expense Manager - Util": "0HoB00000004CFpKAM",
37 "External Apex Library - 1.0.0.4": "04tB0000000IB1EIAW",
38 "Expense Manager": "0HoB00000004CFuKAM"}
39}Salesforce DX プロジェクトが自動的に更新されないようにするには?
sfdx-project.json ファイルの自動更新が適していない場合もあります。より詳細な制御が必要な場合、次の環境変数を使用して、プロジェクトファイルの自動更新を抑制します。
| コマンド | True に設定する環境変数 |
|---|---|
| force:package:create | SFDX_PROJECT_AUTOUPDATE_DISABLE_FOR_PACKAGE_CREATE |
| force:package:version:create | SFDX_PROJECT_AUTOUPDATE_DISABLE_FOR_PACKAGE_VERSION_CREATE |