编写完代码后,下一步是部署它。我们提供不同的 基于您作为客户、系统集成商或独立机构的角色和需求的部署选项 软件供应商 (ISV) 合作伙伴。
要了解不同开发模型的优势,请查看这些 Trailhead 模块:
- 确定应用程序生命周期管理模型 适合您
- 应用程序生命周期和开发模型
- 软件包开发模型
- 快速入门: 解锁套餐
- 解 锁 客户套餐
根据你的采用准备情况,请查看下表,了解建议的选项:
交付应用程序的发布选项
客户和非 ISV 合作伙伴
- 解锁包解锁的包适用于想要组织元数据的客户 到包中,并将元数据(通过包)部署到不同的组织。注意一 Unlocked Package 提供非托管包的超功能集。 因此,此列表中不包含非托管包。查看更多 信息,请参阅已解锁 包。
- 通过 Salesforce CLI 更改集或组织开发
ISV 合作伙伴
- 第二代托管软件包如果你是开发应用并列出应用的 ISV 在 AppExchange 上,Salesforce 建议使用托管软件包。第二代托管 打包(托管 2GP)为 AppExchange 合作伙伴开创了一种新的开发方式, 分发和管理他们的应用和元数据。您可以使用托管的 2GP 来组织 源代码,构建小型模块化软件包,与您的版本控制系统集成,以及 更好地利用您的自定义 Apex 代码。您可以通过以下方式执行所有打包操作 Salesforce CLI,或使用脚本自动执行它们。有关托管的更多信息 2GP 封装,参见第二代 托管打包开发人员指南。
- 第一代托管软件包与托管 2GP 类似,使用托管 1GP 包 由 ISV 通过 AppExchange 将其业务应用程序分发给客户。如果你是 熟悉第一代托管软件包,并希望详细了解 1GP 如何 与 2GP 不同,请参阅 First- 和 第二代托管包。有关托管 1GP 的更多信息 软件包,请参阅创建第一代托管 使用 Salesforce DX 打包。
还没准备好进行软件包开发?
如果你或你的团队尚未准备好进行包开发,则可以继续使用更改 设置,或尝试使用组织开发模型,在该模型中,您可以使用 Salesforce CLI 部署更改。 有关更多信息,请参阅使用元数据 API 构建和发布您的应用程序。
- 使用元数据 API
构建和发布应用 在沙盒中开发和测试应用。使用 Salesforce CLI 或 Salesforce Extensions for VS Code 检索和部署源。此开发工作流称为组织开发模型。
使用元数据 API 构建和发布应用
在沙盒中开发和测试应用。使用 Salesforce CLI 或 Salesforce 扩展 让 VS Code 检索和部署源。此开发工作流称为组织 发展模式。
使用组织开发模型在沙盒中进行开发和测试
与更改集类似,发布工件是一组要在 生产组织。您可以使用这些命令开发、测试和部署更改。如果您想了解更多相关信息 开发模型,请参阅 Trailhead 中的组织开发模型模块。project deploy
开发和发布环境
- 开发和测试:每个团队成员都有自己的开发人员沙盒 创建他们分配的自定义项。开发人员沙盒不包含生产数据。
- 内部版本:每个团队成员都从他们的 将相应的 Developer 沙箱连接到共享的 Developer Pro 沙箱以进行集成。开发人员专业版 沙盒不包含生产数据,但您可以使用测试数据为沙盒设定种子。
- 测试版本:对于用户验收测试,团队使用部分沙盒 以创建生产的完整副本。
- 释放:在发布投入生产后,团队可以使用完整沙盒来执行以下操作 培训用户,避免更改生产数据的风险。完整沙盒包括 生产数据。
我需要什么工具?
工具 | 描述 |
---|---|
Salesforce DX 项目 | Salesforce DX 项目包含元数据和源文件,这些文件组成 变化。DX 项目具有特定的项目结构和源格式。在 除了源文件之外,该项目还包含一个配置文件 sfdx-project.json。此文件包含项目信息,并启用 您可以利用 Salesforce DX 工具完成许多开发任务。 |
部署项目 | 测试更改后,创建部署项目,即包含要部署的已更改文件的 .zip 文件。部署发布 首先将工件添加到完整(暂存)沙盒,然后最后添加到生产环境。你可以想 作为入站更改集的部署项目。更改在以下时间之前不会生效 它们已部署。 |
源代码管理系统 | 所有更改都将合并并存储在源代码管理系统中,该系统包含 Salesforce DX 项目。 |
Salesforce 命令行界面 | 您可以将 Salesforce CLI 用于组织开发生命周期的每个阶段。它 通过为您的所有开发、测试和 自动化用例。 |
适用于 VS Code 的 Salesforce 扩展 | 适用于 VS Code 的 Salesforce 扩展基于 Salesforce CLI 和 Visual Studio 构建 法典。它们共同构成了一个集成开发环境,用于在 闪电平台。您可以直接从命令面板运行 Salesforce CLI 命令,或者 终端。 |
变更管理机制 | 使用正式的更改跟踪在外部捕获更改仍然很重要 工具,例如更改列表、部署运行列表和其他项目管理 工具。 |
部署 Apex Code 的注意事项
要将 Apex 部署到生产环境,Apex 代码的单元测试必须满足覆盖率要求。 代码覆盖率指示类和触发器中有多少行可执行代码 由您的测试方法涵盖。编写测试方法来测试触发器和类,然后运行 这些测试来生成代码覆盖率信息。如果在启动部署时未指定测试级别,则默认测试执行 行为取决于部署包的内容。
- 如果您的部署包包含 Apex 类或触发器,则当您部署到 生产中,将执行所有测试,但源自托管包的测试除外。
- 如果您的包不包含 Apex 代码,则默认情况下不会运行任何测试。
您可以为非 Apex 组件的部署运行测试。您可以覆盖默认测试 通过在部署选项中设置测试级别来执行行为。测试级别为 无论部署包中存在的组件类型如何,都会强制执行。我们建议 在开发环境(如沙盒)中运行所有本地测试之前 部署到生产环境。在开发环境中运行测试可减少 生产部署中所需的测试。
- 在本地
开发和测试更改 以源格式开发更改,部署到开发人员沙盒并从中检索。 - 构建和测试发布项目 在您的团队完成其开发任务
后,过渡到构建发布阶段,以将您的更改集成到 Developer Pro 沙盒中。然后生成发布项目。 - 在暂存环境中
测试发布项目 暂存更改并在完整沙盒中运行回归测试。 - 将应用发布到生产环境 现在,所有测试都已在完整沙盒中通过,可以部署到生产环境
了。 - 取消元数据部署
您可以从 Salesforce CLI 取消元数据部署,并指定命令完成的等待时间。
在本地开发和测试更改
对源代码格式进行更改,部署到开发人员并从开发人员处检索 沙盒。
这些步骤提供了高级工作流。
- 创建源代码管理存储库。
- 创建DX项目。
- 将 DX 项目文件添加到源代码管理存储库。
- 授权开发人员沙盒。
- 在开发人员沙盒中执行开发任务。
- 从开发人员沙盒中检索更改。如果您有一些更改,您可以 指示以逗号分隔的元数据组件名称列表。如果您有很多更改,则可以 使用清单 (package.xml)。
sf project retrieve start --manifest path/to/package.xml
- 将更改提交到源代码管理存储库。
下一个:部署团队对 Developer Pro 沙盒所做的所有更改,然后进行测试 这些变化。
生成并测试发布项目
在您的团队完成其开发任务后,过渡到内部版本 阶段,将您的更改集成到 Developer Pro 沙盒中。然后生成版本 人工制品。
下面是工作流中用于创建发布项目的高级步骤。
- 从存储库中提取更改,以便本地项目包含团队拥有的所有更改 䍬。
- 授权 Developer Pro 沙盒。
- 运行 deploy 命令,该命令模拟将部署到生产环境的内容,例如:
sf project source deploy --manifest manifest/package.xml --target-org dev-pro-sandbox \ --test-level RunSpecifiedTests --tests TestMyCode
- 打开沙盒。
- 执行测试。
- 如果测试通过,请继续执行部署版本的测试发布阶段 项目添加到部分沙箱中。然后执行用户验收测试。
测试通过后,进入发布阶段,在完整版中执行回归测试 沙盒。
在暂存环境中测试发布项目
暂存更改并在完整模式下运行回归测试 沙盒。
根据集成测试进行所有更改后,下一步 是在完整沙盒中暂存更改。将更改部署到 完整沙盒类似于用于将更改部署到开发人员的过程 专业沙盒。此阶段包括回归测试,并模拟您发布 对生产的更改。
这些步骤提供了高级工作流。
- 授权完整沙盒。
- (可选)如果您根据 Developer Pro 中的测试进行了任何更改 沙盒中,创建发布工件 (.zip)。如果没有,请使用 现有发布项目。
- 要在不将组件保存在目标组织中的情况下验证部署,请运行 所有本地(回归)测试。通过验证,可以验证 将在部署期间执行但不提交任何测试 变化。
sf project deploy validate --manifest manifest/package.xml --target-org full-sandbox --test-level RunLocalTests
- 在暂存沙盒中测试实际的生产部署步骤。设置 您计划针对生产组织执行的相同快速部署。
sf project deploy validate --manifest manifest/package.xml --target-org full-sandbox --test-level RunSpecifiedTests
这 命令返回您在快速部署中引用的作业 ID。 - 接下来,使用上一个中返回的作业 ID 测试快速部署 步。
sf project deploy quick --target-org full-sandbox --job-id jobID
验证部署后,您有 10 天的时间来执行快速部署到 生产。
将应用发布到生产环境
现在,所有测试都已通过完整沙盒,可以部署到 生产。
- 在部署运行列表中,完成所有部署前任务。
- 授权您的生产组织。
- 通过验证部署来设置快速部署。
sf project deploy validate --source-dir force-app --target-org prod-org --testlevel RunLocalTests
此命令返回您在快速部署中引用的作业 ID。 - 运行测试后,验证所有 Apex 测试是否都已通过。确保 测试至少覆盖了 75% 的部署代码。
- 运行快速部署:
sf project deploy quick --target-org prod-org --job-id jobID
- 打开生产组织,然后执行 部署运行列表。
取消元数据部署
您可以从 Salesforce CLI 取消元数据部署,并指定 命令完成。
要取消最近的部署,请运行 。可以通过使用标志指定 想要取消。project deploy cancel –use-most-recent–job-id <JOBID>
sf project deploy cancel --job-id <jobid>
cancel 命令完成并在 终端窗口为 33 分钟。如果命令在等待期结束时未完成, CLI 将终端窗口的控制权交还给您。您可以根据需要调整等待时间 通过指定标志中的分钟数, 如以下示例所示:–wait
sf project deploy cancel --wait 20 --use-most-recent
对已取消部署的状态感到好奇?运行部署报告。
sf project deploy report --use-most-recent