使用 ANT 部署托管 Salesforce 包

问题描述 投票:0回答:2

我有一个要求,需要将源组织上安装的托管包部署到目标组织。我相信一定有一种方法可以使用 ANT 来部署相同的组件,就像我们对所有其他 Salesforce 相关组件所做的那样。

有人可以帮我指出实现此目的的过程和 ANT 语法吗?

我首先想在本地检索包,然后将包部署到目标组织。

ant salesforce release-management
2个回答
0
投票

您也可以对托管包使用 ANT 迁移。只需使用 ANT 命令中的“retrieveNamedPackage”目标即可提取托管包。

在此“retrieveNamedPackage”目标中,您应该在 packageNames 属性中指定正确的托管包名称。

<target name="retrieveNamedPackage">
<sf:retrieve 
  username="${sf.username}" 
  password="${sf.password}"
  sessionId="${sf.sessionId}" 
  serverurl="${sf.serverurl}" 
  retrieveTarget="projectFolder" 
  packageNames="mySourcePackage"/>
</target>

检索参考:https://developer.salesforce.com/docs/atlas.en-us.daas.meta/daas/forcemigrationtool_retrieve_packaged.htm

检索后,内容现在将位于“projectFolder”中(正如在retrieveTarget属性中提到的那样)。

要将“projectFolder”(这是您的托管包组件)中的内容部署到目标组织,请使用以下目标。

<target name="deployPackaged">
<sf:deploy 
  username="${sf.username}" 
  password="${sf.password}" 
  sessionId="${sf.sessionId}"
  serverurl="${sf.serverurl}" 
  deployroot="projectFolder"/>
</target>

部署参考:https://developer.salesforce.com/docs/atlas.en-us.daas.meta/daas/forcemigrationtool_deploy_components.htm

您可能遇到的一些错误: 1.指定的包命名空间:NAMESPACE与服务器的命名空间不匹配

原因: 发生这种情况是因为 package.xml 包含一个标签,该标签的名称空间值与您的组织名称空间不匹配。

修复 1:从 package.xml 中删除标签,然后尝试使用 ANT 进行部署。

修复 2: 设置组织的命名空间 (https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/namespaces_creating.htm),然后在您的组织中指定此命名空间package.xml 并尝试使用 ANT 进行部署。

免责声明:如果您尝试修复 2,请在设置命名空间之前在您的组织中进行影响分析。我认为设置命名空间后无法回滚它。在您的 SF 开发人员组织中尝试此操作,然后再在您的客户组织中尝试此操作。


0
投票

为了将托管包从源组织部署到目标组织,您可以尝试另一种更简单的方法。

有一个 DevOps 工具 Zuppio https://appexchange.salesforce.com/appxListingDetail?listingId=a0N4V00000G6g5UUAR&channel=recommended&tab=r

在它的帮助下,您不仅可以安装/升级托管软件包,还可以更新不可升级的元数据、执行匿名 Apex 以及在一次操作中根据需要在多个目标上执行更多操作。

托管软件包所有者的完美工具 - 如果您与大量订阅者组织合作,这是必备工具。

希望这对您有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.