使用ANT部署托管Salesforce包

时间:2016-07-12 07:54:09

标签: ant salesforce release-management

我有一个要求,我需要将我的源组织上安装的托管包部署到目标组织。我相信必须有一种方法可以像使用所有其他与Salesforce相关的组件一样使用ANT进行部署。

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

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

1 个答案:

答案 0 :(得分:0)

您也可以对托管包使用ANT迁移。只需使用" retrieveNamedPackage"在ANT命令中定位以提取托管包。

在此" 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

检索后,内容现在将在&#34; projectFolder&#34; (正如在retrieveTarget属性中提到的那样。

用于部署&#34; projectFolder &#34;中的内容(这是您的托管包组件)到目标组织,使用以下目标。

<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包含一个标记,该标记的名称空间值与您的org名称空间不匹配。

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

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

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