Salesforce第二代管控包(2nd Generation Managed Package) 制作流程
2GP Managed Package
Salesforce 第二代管控包(Second-Generation Managed Packages)是Salesforce最新推广的最佳实践。通过Salesforce CLI,我们可以很方便的制作和部署第二代管控包。本文只是简略的将核心步骤展示出来:
涉及的各种环境
整个第二代管控包需要用到4类org:
- Dev Hub Org:承载所有二代包。可以将各个命名空间的二代包链接到这个org。最好是
PBO
- Namespace Org:一般是Developer org,在其中申请相应的命名空间,由于命名空间一旦申请便与该org永久绑定且不可修改,申请时请慎重。
- Scratch Orgs:在开发测试中使用。
- Production Orgs:按照和使用包的生产环境。
相关org关系示意图。
10步完成制作
创建一个 SFDX 项目
sfdx force:project:create --outputdir expense-manager-workspace --projectname expenser-app
授权
Dev Hub
环境,该环境必须启用Dev Hub功能和未锁定包和第二代管控包功能sfdx auth:web:login -d -a devHub
创建一个草稿环境(
scratch org
)并在其中开发包sfdx force:org:create -f config/project-scratch-def.json -u scratchOrg1
- 保证所有要打包的组件都已经在当前的项目文件夹内
- 在
sfdx-project.json
文件中,使用命名空间属性指定命名空间。例如:“namespace”:“exp-mgr”
从 SFDX 项目文件夹,直接创建管控包:
sfdx force:package:create --name "Expense Manager" --path force-app --packagetype Managed
检查项目文件夹中的
sfdx-project.json
文件,CLI 会自动更新项目文件,使其包含上一步创建的包的信息:{ "packageDirectories": [ { "path": "force-app", "default": true, "package": "Expense Manager", "versionName": "ver 0.1", "versionNumber": "0.1.0.NEXT" } ], "namespace": "exp-mgr", "sfdcLoginUrl": "https://login.salesforce.com", "sourceApiVersion": "51.0", "packageAliases": { "Expense Manager": "0Hoxxx" } }
创建一个包的版本,Salesforce CLI会自动处理包的版本号等
sfdx force:package:version:create --package "Expense Manager" --installationkey test1234 --wait 10
在另一个创建好的草稿环境中,安装并测试这个版本的包:
sfdx force:package:install --package "Expense [email protected]" --targetusername MyTestOrg1 --installationkey test1234 --wait 10 --publishwait 10
安装包后,打开scratch org查看包:
sfdx force:org:open --targetusername MyTestOrg1
\frac{a}{b^2}
参考: