この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

パッケージのプロジェクト設定ファイル

プロジェクト設定ファイルは、プロジェクトの設計図です。このファイルの設定によって、パッケージの概要が作成され、パッケージ属性とパッケージ内容が決まります。

以下は、プロジェクト設定ファイルに指定可能なパラメータです。

名前 必須かどうか 指定がない場合のデフォルト
path はい パスを指定しない場合、パッケージの作成時に Salesforce CLI でプレースホルダが使用されます。
default はい (複数のパッケージディレクトリを指定した場合) true

デフォルトのパッケージディレクトリを示します。force:source:pull コマンドを使用して、スクラッチ組織からデフォルトのパッケージディレクトリにメタデータをコピーします。

default を true に設定できるパッケージディレクトリは 1 つのみです。

package はい プロジェクトの json ファイルで指定されるパッケージ名。
versionName いいえ 指定しない場合、CLI ではバージョン名として versionNumber が使用されます。
versionDescription いいえ なし。
versionNumber はい なし。バージョン番号の書式は major.minor.patch.build です。たとえば、1.2.1.8 です。

ビルド番号をパッケージの次に使用可能なビルドに自動的に増やすには、キーワード NEXT (1.2.1.NEXT) を使用します。

dependencies いいえ なし。他のパッケージへの連動関係を指定します。
同じ Dev Hub 内の管理パッケージの連動関係を指定するには、パッケージバージョンの別名か、パッケージ名とバージョン番号の組み合わせのいずれかを使用します。
1"dependencies": [ 
2   {
3      "package": "MyPackageName@0.1.0.1"
4   }
5]
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]

バージョン番号に LATEST キーワードを使用して連動関係を設定できます。

メモ

パッケージの別名ではなくパッケージ 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]
ancestorId いいえ なし。作成するパッケージバージョンの上位パッケージツリーの直接の親の ID。ancestorId では、パッケージバージョン 04t、またはパッケージバージョンの別名が必要です。上位を指定する場合、ancestorId または ancestorVersion を使用できます。

例:

1"ancestorId": "Expenser Logic@0.1.0-1"

詳細は、「パッケージの上位」を参照してください。

ancestorVersion いいえ なし。作成するパッケージバージョンの上位パッケージツリーの直接の親のバージョン番号。

major.minor.patch.build の形式を使用して上位バージョンを指定します。上位を指定する場合、ancestorId または ancestorVersion を使用できます。

例:

1"ancestorVersion": "0.1.0.1"

詳細は、「パッケージの上位」を参照してください。

definitionFile いいえ なし。パッケージのメタデータに必要な機能や組織設定 (スクラッチ組織定義など) を指定するために使用される外部 .json ファイルへの参照。

例:

1"definitionFile": "config/project-scratch-def.json",
namespace はい なし。各自のパッケージとそのコンテンツを他の開発者のパッケージと区別するための 1 ~ 15 文字の英数字で構成される識別子。
packageAliases はい このファイルは、パッケージまたはパッケージバージョンの作成時に Salesforce CLI によって別名で更新されます。既存のパッケージまたはパッケージバージョンのこのセクションを手動で更新することもできます。CLI の force:package コマンドを実行するときにわかりづらいパッケージ ID の代わりに別名を使用できます。
postInstallScript いいえ なし。管理パッケージのインストールまたはアップグレード後に登録者組織で自動的に実行される Apex スクリプト。
uninstallScript いいえ なし。管理パッケージのアンインストール前に登録者組織で自動的に実行される Apex スクリプト。
releaseNotesUrl いいえ なし。リリースノートへの URL。
postInstallUrl いいえ なし。登録者がインストール後に行う手順への URL。
unpackagedMetadata (パイロット) いいえ なし。「パッケージバージョン作成テストでのパッケージ化されていないメタデータの指定」を参照してください。

Salesforce CLI を使用してパラメータを指定すると、プロジェクト定義ファイルにリストされている値が上書きされます。

Salesforce DX プロジェクト定義ファイルは、JSON ファイルで、プロジェクトのルートディレクトリにあります。force:project:create CLI コマンドを使用して、基盤として使用可能なプロジェクトファイルを生成します。packageDirectories のパラメータは次のようになります。

1{
2   "namespace": "exp-mgr",
3   "sfdcLoginUrl": "https://login.salesforce.com",
4   "sourceApiVersion": "47.0",
5   "packageDirectories": [
6      {
7         "path": "util",
8         "default": true,
9         "package": "Expense Manager - Util",
10         "versionName": "Winter ‘20",
11         "versionDescription": "Welcome to Winter 2020 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": "Winter 2020 Release",
21         "versionNumber": "3.2.0.NEXT", 
22         "ancestorVersion": "3.0.0.7",
23         "postInstallScript": "PostInstallScript",
24         "uninstallScript": "PreUninstallScript",
25         "postInstallUrl": "https://expenser.com/post-install-instructions.html",
26         "releaseNotesUrl": "https://expenser.com/winter-2020-release-notes.html",
27         "definitionFile": "config/scratch-org-def.json",
28         "dependencies": [
29            {
30               "package": "Expense Manager - Util",
31               "versionNumber": "4.7.0.LATEST"
32
33            },
34            {
35               "package" : "External Apex Library - 1.0.0.4"
36            }
37         ]
38      }
39   ],
40   "packageAliases": {
41      "Expense Manager - Util": "0HoB00000004CFpKAM",
42      "External Apex Library@1.0.0.4": "04tB0000000IB1EIAW",
43      "Expense Manager": "0HoB00000004CFuKAM"}
44}

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